Eingabe vor Speichern korrigieren

24/09/2008 - 22:44 von Thomas Winkler | Report spam
Hi,

habe das Problem, eine Eingabe vor dem Verlassen des Textfeldes ggf.
noch korrigieren zu müssen.

Dazu scheint sich ja auf den ersten Blick das Ereignis BeforeUpdate
anzubieten. Nur leider kann ich darin dem Feld selbst keinen neuen Wert
zuweisen (was ja beim darüber nachdenken auch logisch ist, weil sonst
eine Endlosschlife eintstehen würde).

Wie löse ich das denn am geschicktesten? Im AfterUpdate wàre es dann
wieder möglich, Werte zuzuweisen. Im Korrekturfall hàtte das aber einen
zweifachen Speichervorgang (erst einegebener Wert, danach korrigierter
Wert) zur Folge.

Geht's noch eleganter?

Thomas
 

Lesen sie die antworten

#1 Henry Habermacher
25/09/2008 - 07:04 | Warnen spam
Hallo Thomas

Thomas Winkler wrote:
Dazu scheint sich ja auf den ersten Blick das Ereignis BeforeUpdate
anzubieten. Nur leider kann ich darin dem Feld selbst keinen neuen Wert
zuweisen (was ja beim darüber nachdenken auch logisch ist, weil sonst
eine Endlosschlife eintstehen würde).

Wie löse ich das denn am geschicktesten? Im AfterUpdate wàre es dann
wieder möglich, Werte zuzuweisen. Im Korrekturfall hàtte das aber einen
zweifachen Speichervorgang (erst einegebener Wert, danach korrigierter
Wert) zur Folge.



Du hast da ein Durcheinander mit den Ereignissen. Du bringst die Control-
und Formular-Ereignisse durcheinander. Die Control-Ereignisse kommen vor dem
Form_BeforeUpdate Ereignis.

Beim Control_AfterUpdate war noch nichts gespeichert. Das ist das richtige
Ereigniss, wenn Du keine Feldabhàngigkeiten hast, die Du auch kontrollieren
willst. Ansonsten ist es das Form_BeforeUpdate, welches für Prüfungen passt.
Auch da wurde noch nichts gespeichert und auch da kannst Du die Werte in den
Steuerelementen noch veràndern, bevor gespeichert wird. Das Speichern
erfolgt erst unmittelbar danach, also zwischen dem Form_BeforeUpdate und dem
Form_AfterUpdate. Darum kann man das Form_BeforeUpdate Ereignis mit einem
Cancel=True auch abbrechen, um das Speichern in die Datenbank zu verhindern,
bis die Eingaben korrigiert wurden.

Ich selber mache alle Prüfungen meist zentral im Form_BeforeUpdate, da sind
diese einfacher wieder zu finden, als bei den Controls. Der Code wird so
übersichtlicher.

Gruss
Henry


11. AEK Anmeldung unter http://donkarl.com/?AEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen