Een KeyDown event

Status
Niet open voor verdere reacties.

DutchOirs

Gebruiker
Lid geworden
30 sep 2009
Berichten
880
Goedemiddag allen,

Heb weer een vraagje dus dacht stel hem hier bij de Die-Hards.

Na het invoeren van gegevens sluit men het af met een Enter of een Tab,

Het volgende event komt dan in actie:
Code:
Private Sub RekNummerTB_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Hierin worden bepaalde dingen gecheckt.
Als er nu iets fout is zou de cursor op dezelfde TextBox moeten blijven.
Maar doordat het afgesloten is met een Enter of Tab gaat ie automatisch door naar de volgende TextBox.
Met een SetFocus probeer ik op dezelfde TextBox te blijven, maar dat lukt niet.
Gebruik dit event omdat pas na de Enter of Tab gecheckt moet worden.
Zou dus een code moeten hebben die de cursor één TextBox terug zet.

Is voor deze gebeurtenis een oplossing?

Bij voorbaat al many thanks.

Vr. Gr.

Dutch
 
Laatst bewerkt:
Voorkomen dat de gebruiker een invoerfout kan maken: biedt hem/haar louter geldige opties aan (combobox/listbox.)
 
Laatst bewerkt:
Wat snb zegt is het beste natuurlijk, maar als dat een Textbox in een Userform is kan je ook het Textbox_Exit event gebruiken:
Code:
Private Sub RekNummerTB_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If nietgoed then Cancel = True
End Sub

De cursor gaat dan niet naar de volgende Textbox.
 
Laatst bewerkt:
Hoi Edmoor,

Thanks voor het meedenken.

Wat SNB zegt klopt en probeer zoveel mogelijk dit te doen, maar gaat niet altijd op.

Heb het volgende:
Code:
      If i = Len(ZoeknaamCB) Then

        MsgBox ("U heeft of geen Voornaam of geen komma met spatie ingevoerd" & vbNewLine & vbNewLine & "tussen Achternaam en Voornaam!!!" & vbNewLine & vbNewLine & vbNewLine & "Fout #035"):
        Me.ZoeknaamCB.SetFocus:
        Signal.BackColor = RGB(255, 0, 0):
        Cancel = True
         Exit Sub
      End If

Probeer van alles maar cursor blijft naar volgende TextBox gaan
 
Die code heb ik niks aan want of Cancel = True werkt is afhankelijk van de Event routine waar deze in staat en deze laat je hier niet zien. Zoals ik al zei moet je die gebruiken in het _Exit event van het betreffende object
 
Klopt Edmoor,

code =:
Code:
Private Sub ZoekNaamCB_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 
Dat is niet het _Exit event van een textbox. In #3 heb ik een duidelijk voorbeeld laten zien.
 
ok kwartje valt nu :-)

cancel = true moet in een ReturnBoolean event staan..

In dit event kan men alle controle over invoer zetten, gevolgd door cancel = true?
 
Ja, waarbij je Cancel = True uiteraard alleen doet wanneer de invoer niet correct is.
 
ok moet nu dus de boel om gaan zetten voor dit event

thanks voor het meedenken
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan