Datensatzänderungen im Formular anzeigen

Sichtbar machen der alten Werte

Beiden Prozeduren übergeben Sie das für den Dateinamen verwendete Präfix oder Suffix. Innerhalb einer For-Schleife, die alle Steuerelemente durchläuft, prüfen Sie in einer Verzweigung, ob der Name des Steuerelements, den Sie über die ControlName-Eigenschaft abfragen können, mit dem Präfix beginnt oder mit dem Suffix endet. Ist das der Fall, blenden Sie das Steuerelement über die Visible-Eigenschaft aus.

In der Prozedur anzeigen, die dazu dient, die alten Werte sichtbar zu machen, müssen Sie hingegen nur die Steuerelemente durchlaufen, deren Name weder mit dem Präfix beginnt noch mit dem Suffix endet. Für diese Steuerelemente prüfen Sie, ob die OldValue-Eigenschaft einen anderen Wert als die Value-Eigenschaft hat. Falls ja, weisen Sie dem entsprechenden Steuerelement mit dem Präfix und Suffix im Namen den alten Wert zu und blenden es ein.

Die Prozedur wiederherstellen unterscheidet sich nur in wenigen Anweisungen. Statt dem ungebundenen Textfeld den alten Wert des gebundenen Feldes zuzuweisen, wird dem gebundenen Feld der Inhalt des ungebundenen zugewiesen, um den alten Wert wieder herzustellen.

Nun fehlt noch der Aufruf der drei Prozeduren. Das ist im Prinzip ganz einfach. Allerdings sollten Sie für die einzelnen Steuerelemente Ereignisprozeduren für das Exit-Ereignis erstellen. Im Unterschied zum vorherigen Code wird der alte Wert nämlich nur dann dem ungebundenen Steuerelement zugewiesen, wenn der Wert vom alten Wert abweicht. Der Wert wird aber immer erst dann geändert, wenn das Steuerelement nach der Eingabe verlassen wird. Solange es nach der Eingabe den Fokus behält, trifft diese Bedingung daher nicht zu.

Private Sub bttWiederherstellen_Click()
wiederherstellen "Alt", ""
End Sub
Private Sub Form_Current()
ausblenden "Alt", ""
End Sub
Private Sub Geburtstag_Exit(Cancel As Integer)
einblenden "Alt", ""
End Sub
Private Sub ID_Exit(Cancel As Integer)
einblenden "Alt", ""
End Sub
Private Sub Nachname_Exit(Cancel As Integer)
einblenden "Alt", ""
End Sub
Private Sub Vorname_Exit(Cancel As Integer)
einblenden "Alt", ""
End Sub