Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Mindestens ein Kontrollkästchen einer Gruppe aktivieren

Access 365 2024 2021 2019 2016 2013 2010

FRAGE Ich verwende in einem Formular meiner Access-Datenbank eine Gruppe von Kontrollkästchen. Für die korrekte Datenerfassung mit möglichst wenig Aufwand soll in Zukunft sichergestellt sein, dass bei neuen Daten oder nach dem Bearbeiten von vorhandenen Datensätzen mindestens ein Kontrollkästchen aktiviert ist. Wie kann ich eine solche Prüfung am einfachsten umsetzen und dann die Speicherung des Datensatzes mit unvollständigen Daten verhindern?

Diverse Anfragen

ANTWORT: Bevor ein neuer Datensatz oder eine Änderung an einem vorhandenen Datensatz gespeichert wird, löst Access das Ereignis "Vor Aktualisierung" des Formulars aus. Diese Ereignisprozedur können Sie zum Beispiel folgendermaßen nutzen:

Private Sub Form_BeforeUpdate(Cancel As Integer)
  Dim Cnt&
  Dim arrCheckboxes As Variant
  Dim cb As Variant

  arrCheckboxes = Array(cb_1, cb_2, cb_3, cb_4, cb_5)
  For Each cb In arrCheckboxes
    If cb Then Cnt = Cnt + 1
  Next 'cb
  If Cnt = 0 Then
    MsgBox "Es muss mindestens ein " & _
           "Kontrollkästchen aktiviert sein!", _
           vbOKOnly + vbExclamation, "!!! Problem !!!"
    Cancel = True
  End If

End Sub

Über "arrCheckboxes = Array(...)" legen Sie fest, welche Kontrollkästchen im Formular geprüft werden sollen. Ersetzen Sie "cb_X" durch die Namen der Kontrollkästchen in Ihren Formular. Diese werden dann in einer Schleife durchlaufen und geprüft. Die Abfrage "If cb... " ergibt "True", wenn ein Kontrollkästchen aktiviert ist. In diesem Fall wird ein Zähler "Cnt" heraufgezählt. Ist er nach dem Durchlaufen der Schleife gleich "0", wurde kein Kontrollkästchen aktiviert. Es wird dann eine entsprechende Meldung angezeigt und der Parameter "Cancel" der Ereignisprozedur auf "True" gesetzt. Das signalisiert Access, dass der Datensatz nicht gespeichert werden soll und der Anwender somit Gelegenheit erhält, seine Eingaben zu korrigieren.