Beitrag aus SmartTools Access Weekly
Mindestens ein Feld in einem Formular ausfüllen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE In meiner Datenbank verwende ich einem Formular 3 Eingabefelder für Versicherungsnummern (für 5-stellige, für 11-stellige oder für 13-stellige Nummern). Beim Ausfüllen muss sichergestellt sein, dass mindestens eines dieser Felder einen Inhalt aufweist. Es dürfen also nicht alle 3 Felder nicht leer bleiben. Wie kann ich diese Prüfung zuverlässig über eine VBA-Prozedur durchführen und sicherstellen, dass ein Datensatz nur mit einem ausgefüllten Feld gespeichert wird?
Diverse Anfragen
ANTWORT Stellen Sie die Eigenschaft "Vor Aktualisierung" des Formulars auf "[Ereignisprozedur]" ein, klicken Sie auf die Schaltfläche mit den drei Punkten und geben Sie im VBA-Editor folgende Anweisungen ein:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me.Feld1) And _
IsNull(Me.Feld2) And _
IsNull(Me.Feld3) Then
Beep
MsgBox "Feld1 oder Feld2 oder Feld3 " & _
"muss eingegeben werden..."
Cancel = True
End If
End Sub
Wenn nun alle drei Felder leer sind, signalisiert "Cancel = True", dass der Datensatz nicht gespeichert und verlassen werden soll. Access hält den Anwender solange im Datensatz, bis mindestens eines der Felder einen Inhalt hat oder der Anwender die Esc-Taste zum Abbrechen der Eingabe betätigt.