Automatisches Erfassungs- und Änderungsdatum in Formularen

Ein altbekanntes Problem: Sie möchten in einem Datenbank-Formular festhalten, wann ein Datensatz angelegt und wann er zuletzt geändert wurde. Das ist prinzipiell kein Problem, denn Sie müssen nur ein Datumsfeld einfügen, das bei jeder Änderung des Datensatzes aktualisiert wird. Nur wie stellen Sie fest, ob es sich um einen neuen oder um einen geänderten Datensatz handelt?
Die Lösung für diese uneindeutige Angabe sind zwei getrennte Felder für Erfassungs- und Änderungsdatum und eine kleine Ereignisprozedur. Legen Sie in einem Formular, in dem Sie diese beiden Daten erfassen wollen, zunächst die beiden Felder »Erfdat« für das Erfassungsdatum und »AendDat« für das Änderungsdatum an. Mit einem Klick auf »Entwurf« öffnen Sie dieses Formular in der Entwurfsansicht und wählen nach einem rechten Mausklick auf die quadratische Fläche in der linken oberen Ecke des Formulars »Eigenschaften«.
Wechseln Sie zum Register »Ereignis« und wählen Sie im Feld »Vor Aktualisierung« den Eintrag »Ereignisprozedur«. Über einen Mausklick auf die kleine Schaltfläche mit den drei Punkten gelangen Sie in den Editor, in dem Sie das im Kasten abgedruckte Listing eintippen. Das Makro überprüft, ob es sich um einen neuen Datensatz handelt. Ist das der Fall ist, wird das aktuelle Datum in das Feld »ErfDat« eingetragen. Andernfalls erscheint es in »AendDat«.
Speichern Sie anschließend das Formular und wechseln Sie in die »Formularansicht«. Wenn Sie jetzt einen neuen Datensatz anlegen, erscheint das aktuelle Datum in dem Feld mit dem Erfassungsdatum, ändern Sie einen bestehenden Datensatz, wird das Feld mit dem Datum der letzten Änderung aktualisiert.
Makrolisting Neuanlage oder Änderung:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.NewRecord = True Then
Me!ErfDat = Date
Else
Me!AendDat = Date
End If
End Sub