Hallo,
also nochmal:
Also per Sprungmarke in den Sub Prüfung(), diesen erfolgreich durchlaufen, und dann weiter mit der Speicherung des Datensatzes…
Wie gesagt: das ist Quatsch. Das ist prozedural gedacht (vermute ich mal) und passt nicht in den event-gesteuerten Formularablauf.
Daher soll eine Richtigkeitsprüfung erst unmittelbar vor dem Abspeichern des Datensatzes erfolgen
Access (Formulare) sind ereignis-gesteuert und nicht prozedural. D. h. es treten Events (Ereignisse) bei den verschiedenen Zuständen/Abläufen aus, die auswertbar (mit Code hinterlegbar) sind , soll heißen, auf die man mittels Code oder auch Makros (igitt) reagieren kann und zudem teilweise ein Abbruch-Argument (Cancel as Integer) besitzen, so dass der Ablauf (die Ereignisprozedur, hier: das Speichern des Datensatzes) abgebrochen werden kann.
Das Form_Beforeupdate-Ereignis tritt auf, wenn ein DS geändert wurde, aber noch nicht gespeichert ist. Ob die Speicherung durch einen Button (mit hinterlegten Code etwa wie Runcmd accmdSaverecord oder Me.Dirty =false) oder durch profanen Datensatzwechsel oder auch durch das Schließen des Forms erfolgt, ist hier unerheblich.
Jedenfalls ist zum Zeitpunkt des Ereignisses der DS noch nicht in die Tabelle gespeichert, sondern steht erst zur Speicherung an, wodurch die Daten auf Plausibilität (z. B. Isnull() ) geprüft werden können und auch andere Maßnahmen eigeleitet werden können ( z. Fokus setzen auf das jeweils geprüfte und als fehlerhaft gefunden Feld)
In dieser Ereignisprozedur hat man nun die Möglichkeit, genau dieses
Daher soll eine Richtigkeitsprüfung erst unmittelbar vor dem Abspeichern des Datensatzes erfolgen…
zu erledigen.
So. das sollte jetzt mal reichen als „Tutorial“ ,…
Am besten ist, Du baust die (meine) vorgeschlagene Prozedur mal ein und testest das Ganze…
Gruß
Franz, DF6GL