Moeten besturingselementen gekoppeld worden?

  • Onderwerp starter Onderwerp starter Jemp
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Jemp

Gebruiker
Lid geworden
18 feb 2012
Berichten
145
Hallo beste forumleden

Hier ben ik met mijn volgende vraag.

Aan een Form met twee textboxen en twee listboxen heb ik onderstaande code gekoppeld. De bedoeling is dat, zonder invoer in textbox1, geen enkele actie mogelijk is.
Wanneer ik (zonder invoer in textbox1) iets in textbox2 wil invoeren werkt de code perfect (msgbox + focus blijft in textbox1). Wanneer ik echter (terug zonder invoer in textbox1) een listbox selecteer gaat deze actie wel door !!! De voorziene msgbox verschijnt wel maar de selectie in de listbox wordt aanvaard (en dat is niet de bedoeling).

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim intMsg As Integer
If TextBox1.Text = "" Then
    Cancel = True
    intMsg = MsgBox("gelieve gegevens in te geven in Box1", vbOKOnly)
    If intMsg = vbOK Then
        Exit Sub
    End If
Else
    TextBox2.SetFocus
End If
End Sub

Kan iemand een leek hierbij helpen?
 
Ik snap je code niet helemaal; die is op het Exit event van Textbox1 gezet. Als je gelijk in Textbox2 klikt, kun je toch direct intypen? En hetzelfde voor de Listbox: daar zit geen enkele belemmering op als je hem gelijk selecteert. Ik zou de objecten in bij het initializeren disablen, en bij de Exit van textbox1 een Enable toepassen op die objecten. Dan controleer je of er iets is ingevuld, en zo ja, dan Listbox.Enable en Textbox2.Enable.
 
Voorkomen is beter dan controleren.

Laat de vervolgaktie pas zichtbaar worden als alle items zijn ingevuld.
De controle daarop plaats je in een gemeenschappelijke controlemacro:

Code:
Private Sub tekstvak1_change()
  A_controle
end sub 

Private Sub tekstvak2_change()
  A_controle
end sub 

Private Sub A_controle()
  listvak1.visible=tekstvak1.Text <>"" and tekstvak2.Text<>""
end sub
 
OctaFish :
TextBox1 heeft TabIndex1 en krijgt dus de Focus bij het opstarten. Je kan echt niet in TextBox2 klikken zonder iets in te vullen in Textbox1 (Probeer het maar)

SNB : disable of hide is inderdaad een optie. Ik blijf dan wel met mijn vraag zitten waarom de code met de textbox wel werkt en niet met de listbox (ben nogal weetgierig).
 
Geen voorbeeldbestand, geen idee (ben niet helderziend .... ;) )
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan