Bei Cancel = True wird BeforeUpdate 2x ausgeführt
24.11.2008 23:34:00
JogyB
Hatte heute ein seltsames Problem mit BeforeUpdate bei einer TextBox. Ich mache dort eine Eingabeüberprüfung nach einer laufenden Nummer, z.B. 0456/08. Wenn das Format nicht stimmt, dann kommt eine MsgBox und Cancel wird auf True gesetzt, damit der Fokus auf der TextBox bleibt.
Das seltsame ist nun, dass BeforeUdate hier des öfteren doppelt ausgeführt wird - aber nicht jedes Mal, ab und an bleibt es (wie eigentlich zu erwarten) bei einer Ausführung. Außerdem treten diese Doppelausführungen nur auf, wenn Cancel auf True gesetzt wird, belasse ich es also nur bei der MsgBox, dann ist alles in Ordnung.
Ich habe auch versucht, das bei einem Testformular mit zwei Textboxen zu reproduzieren, aber da tritt das Problem nie auf.
Ich habe das jetzt umgangen, indem ich die Systemzeit zwischenspeichere und diese am Anfang von BeforeUpdate überprüfe. Hat sie sich nicht geändert, dann gehe ich von einer Doppelausführung aus und es wird nur Cancel auf True gesetzt. Das funktioniert so weit (wobei hier jetzt wieder ab und an der seltsame Fall auftritt, dass das Formular auf ein Tab oder Enter gar nicht reagiert, aber das ist letztendlich egal, da es beim nächsten Tastendruck wieder reagiert), nur paßt es mir nicht so ganz, einen Workaround für ein Problem nutzen, das es eigentlich nicht geben sollte.
Also: Hat jemand von Euch so etwas schon mal erlebt und wenn ja, kennt Ihr die Ursache?
Danke und Gruss,
Jogy
P.S.: Kann leider keine Beispieldatei hochladen. Das eigentliche Formular ist rein für die firmeninterne Nutzung und mit einem Beispielformular konnte ich das Verhalten nicht reproduzieren... ich weiß, das macht es nicht gerade einfacher.