Supportnet / Forum / Tabellenkalkulation
Problem mit setfocus
Frage
Hallo alle zusammen,
In einem Textfeld soll nach der Eingabe eines Datums geprüft werden, ob es richtig ist.
Wenn ja, soll ein weiteres Textfeld freigeschaltet werden, wenn nicht, der Cursor wieder in dem selben Textfeld plaziert werden und somit eine korrekte Eingabe erzwungen werden.
Damit der User aber auch wieder aus diesem "Teufelskreis" rauskommt, passiert bei einem leeren Feld nichts.
Leider wird aber der Fokus nach einer falschen Eingabe nicht auf das selbe Textfeld gesetzt, sondern auf das nächste.
Und, wenn ich schon mal frag, wie kann ich das Datum auf gültigkeit prüfen. Also das der 27.13.2001 nicht akzeptiert wird (und die Probleme mit dem Schaltjahr)?
Hier mein Quelltext:
Private Sub txtVon_AfterUpdate()
If txtVon.Value = Empty Then
´damit der User aus dieser Abfrage wieder rauskommt
txtBis.Value = ""
txtBis.BackStyle = 0
txtBis.Locked = True
ElseIf txtVon.Value Like "??/??/????" Then
txtBis.BackStyle = 1
txtBis.Locked = False
Else
MsgBox "Das Datum muss in dem Format TT/MM/YYYY eingegeben werden.", 48, "Fehler"
txtVon.SetFocus
End If
End Sub
mfg Dai-Kaio-Shin
Antwort 1 von Dai-Kaio-Shin
Habs selber hinbekommen.
Nur zur Info.
Man nehme statt
Private Sub txtVon_AfterUpdate()
besser
Private Sub txtVon_Exit(ByVal Cancel As MSForms.ReturnBoolean)
und schreibt nach
txtVon.SetFocus
Cancel = true
fertig.
mfg
Nur zur Info.
Man nehme statt
Private Sub txtVon_AfterUpdate()
besser
Private Sub txtVon_Exit(ByVal Cancel As MSForms.ReturnBoolean)
und schreibt nach
txtVon.SetFocus
Cancel = true
fertig.
mfg
Antwort 2 von Dai-Kaio-Shin
Ich bins wieder.
Muss mich doch noch mal an alle hier wenden, weil es nicht so funkt wie ich will.
Mit exit() hat den nachteil, dass man das Textfeld verlassen kann, wenn man auf eine Page der Multipage klickt. Dadruch wird die Prozedur zur Kontrolle nicht ausgeführt und man könnte sogar den falschen wert speichern.
Also brauch ich doch ne lösung zu dem ersten eintrag.
Wäre schön, wenn mal jemand nen tipp geben könnte.
mfg Dai-Kaio-Shin
Muss mich doch noch mal an alle hier wenden, weil es nicht so funkt wie ich will.
Mit exit() hat den nachteil, dass man das Textfeld verlassen kann, wenn man auf eine Page der Multipage klickt. Dadruch wird die Prozedur zur Kontrolle nicht ausgeführt und man könnte sogar den falschen wert speichern.
Also brauch ich doch ne lösung zu dem ersten eintrag.
Wäre schön, wenn mal jemand nen tipp geben könnte.
mfg Dai-Kaio-Shin