txtbox.setfocus (geht nicht, warum?)
03.10.2005 12:01:51
Frank
Ich habe mir eine Userform (formular) gebastelt. Dort soll der Anwender u.a. ein Geburtsdatum eingeben.
Beim Verlassen der Textbox prüft eine Routine, ob der eingetragene Wert überhaupt ein Geburtsdatum ist - und in einer zweiten Schleife, ob das Datum nicht in der Zukunft liegt.
Die Prüfung funktioniert bis auf die Tatsache, dass nach Ausgabe der Fehlermeldung der Cursor nicht wieder in die Textbox zurückgesetzt wird.
Ich habe das mit setfocus probiert, die Anweisung will aber in der if-then schleife nicht.
Grundsätzlich funktioniert setfocus bei mir. Ich habe es mit einer Testschaltfläche ausprobiert.
Hier mal mein Listing - hat jemand eine Idee, welchen Fehler ich gemacht habe?
Gruß
Frank
Private Sub txtGebdat_Exit(ByVal Cancel As MSForms.ReturnBoolean)
frmEingabe.txtGebdat = Format(frmEingabe.txtGebdat, "dd.mm.yyyy")
Gebdat = frmEingabe.txtGebdat
If IsDate(Gebdat) Then
Else
frmEingabe.txtGebdat.Value = ""
frmEingabe.txtGebdat.SetFocus 'Funktioniert nicht, warum?
MsgBox vbCrLf & vbCrLf & "Hinweis:" & vbCrLf & vbCrLf _
& Gebdat _
& vbCrLf & vbCrLf & "entspricht keinem gültigen Datumsformat." _
& vbCrLf & vbCrLf & "Korrigieren Sie Ihre Eingaben!" _
& vbCrLf & vbCrLf & "Gültiges Format ist: 00.00.0000 !" & vbCrLf _
& vbCrLf & vbCrLf, vbCritical + vbOKOnly, "Eingabefehler ...": _
Exit Sub
End If
Date = Format(Date, "dd.mm.yyyy")
t = Date
g = Gebdat
If g > t Then
frmEingabe.txtGebdat = ""
frmEingabe.txtGebdat.SetFocus 'Funktioniert nicht, warum?
MsgBox vbCrLf & vbCrLf & "Hinweis:" & vbCrLf & vbCrLf _
& Gebdat _
& vbCrLf & vbCrLf & "Das Geburtsdatum liegt über dem Systemdatum, demnach in der Zukunft." _
& vbCrLf & vbCrLf & "Korrigieren Sie Ihre Eingaben!" _
& vbCrLf & vbCrLf & "Gültiges Format ist: 00.00.0000 !" & vbCrLf _
& vbCrLf & vbCrLf, vbCritical + vbOKOnly, "Eingabefehler ...": _
Exit Sub
End If
End Sub