Supportnet Computer
Planet of Tech

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: