Timestamp-Felder in Access nachbilden

Den Feldwert beim Speichern setzen

Damit ist allerdings noch nicht das Problem gelöst, dass sich der Feldwert bei einer Änderung des Datensatzes nicht ändert. Das ist also noch zu erledigen. Normalerweise werden zum Ändern von Datensätzen in Access Formulare verwendet. Sie können daher die entsprechenden Formularereignisse nutzen.

Grundlage dafür ist ein Formular, das auf der Tabelle mit dem Timestamp-Feld basiert. Für dieses Formular erzeugen Sie dann eine Ereignisprozedur für das zu verwendende Ereignis. Nutzen lassen sich dafür mehrere Ereignisse. Am einfachsten ist die Nutzung des Dirty-Ereignisses (Bei Geändert). Es steht allerdings in Access 97 nicht zur Verfügung.

Private Sub Form_Dirty(Cancel As Integer)
Me.Timestamp.Value = Now
End Sub

Möchten Sie das Dirty-Ereignis nutzen, weisen Sie in dessen Ereignisprozedur einfach dem Timestamp-Feld das Ergebnis der Now-Funktion zu. Da das Ereignis in Access 97 noch nicht zur Verfügung steht, müssen Sie hier einen anderen Weg gehen. Für jedes Steuerelement des Formulars, das zur Eingabe und Änderung der Daten dient, erstellen Sie eine Ereignisprozedur für das Change-Ereignis (Bei Änderung). Dort fügen Sie dann ebenfalls die Anweisung Me.Timestamp.Value =Now ein (Listing 2).

Private Sub ID_Change()
Me.Timestamp.Value = Now
End Sub