Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA + combot

javerkki [21.07.2005 19:53:51]

#

Minulla on formissa 4 eri comboa (cbo1,cbo2,cbo3,cbo4) ja yksi nappi. Nyt kun formi ladataan niin nappi on arvossa
Me.nappi.Enable = False

Kuinka voisin tehdä niin, että nappi tulisi arvoon True vasta sitten kun kaikissa comboissa on joku valittuna. Eli ne eivät olisi tyhjiä ?

Missä kohtaa tämä olisi hyvä tehdä?, sillä yhdellä cbo:llahan tuo helppo laittaa OnChange eventtiin, mutta nyt kun cbo:ita on 4 ?

Kiitos, jos joku tietää neuvoa.

Blaze [21.07.2005 20:05:33]

#

Olikohan VBA:ssa Control Arrayitä? Jos on, niin tee noista sellainen.
Jos ei ollut, niin laita tuo tarkistus johonkin funktioon ja kaikkien OnChangeihin sitten vain kutsu siihen funktioon.

javerkki [21.07.2005 21:48:45]

#

Prkl... Laitoin vahingossa väärälle alueelle ja luulin, ettei viesti mennytkään putkaan. No, mutta löytyi se vastaus täältäkin. Kiitos.

(mod: siirretty oikealle alueelle)

Blaze [21.07.2005 22:58:37]

#

Ai, olikse jossain vaiheessa väärällä alueellakin? Pitäs varmaan lukee vaan yhtä aluetta kerrallaan, multitaskaus ei tunnu sopivan mulle :P

tesmu [22.07.2005 00:50:05]

#

if combo1.text="" then
else
if combo2.text="" then
else
if combo3.text="" then
else
if combo4.text=""
else
command1.enabled=true
end if
end if
end if
end if

esim tolleen :F

Metabolix [22.07.2005 01:13:46]

#

Hyh, mikä ruma purkka. Tuollaiset pitäisi kieltää lakiasetuksin :)

If (combo1.text <> "") And (combo2.text <> "") And (combo3.text <> "") And (combo4.text <> "") Then
  command1.Enabled = True
End If

neau33 [22.07.2005 02:45:02]

#

Voit sä tehdä ton jutun myös siinä OnChange event'issä

 Private Sub Combo1_Change()
 If Combo1.Text <> "" And cnt < 4 Then xSet_Count
 If Combo1.Text = "" And cnt = 4 Then ReSet_Count
End Sub

Private Sub Combo2_Change()
 If Combo2.Text <> "" And cnt < 4 Then xSet_Count
 If Combo2.Text = "" And cnt = 4 Then ReSet_Count
End Sub

Private Sub Combo3_Change()
 If Combo3.Text <> "" And cnt < 4 Then xSet_Count
 If Combo3.Text = "" And cnt = 4 Then ReSet_Count
End Sub

Private Sub Combo4_Change()
 If Combo4.Text <> "" And cnt < 4 Then xSet_Count
 If Combo4.Text = "" And cnt = 4 Then ReSet_Count
End Sub

Sub xSet_Count()
 cnt = cnt + 1
 If cnt = 4 Then Command1.Enabled = True
End Sub

Sub ReSet_Count()
 cnt = cnt - 1
 Command1.Enabled = False
End Sub

'ja sit tää moduuliin...
Global cnt As Integer

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta