Beitrag aus SmartTools Access Weekly
Eingabe abhängig von einem anderen Feld steuern
Access 365 2024 2021 2019 2016 2013 2010
FRAGE In einer Tabelle meiner Access-Datenbank gibt es eine Spalte "A" mit dem Felddatentyp "Ja/Nein". Kann ich die Zulässigkeit der Dateneingabe in einer anderen Spalte "B" davon abhängig machen, ob das Kontrollkästchen in Spalte "A" angekreuzt wurde? Der Standardwert in Spalte "A" ist "Nein". Nur wenn wirklich explizit "Ja" eingestellt wird, soll in Spalte "B" etwas eingetragen werden können. Lässt sich das irgendwie umsetzen?
Diverse Anfragen
ANTWORT Zur Lösung dieses Problems wird ein wenig VBA-Code benötigt. In der Datenblattansicht lässt sich das Problem jedoch nicht lösen, da Access hier kein VBA unterstützt. Helfen können Sie sich, indem Sie die Tabelle per Endlos-Formular anzeigen lassen. Nun können Sie für das Ja/Nein-Feld eine Ereignisprozedur "Nach Aktualisierung" nutzen und darin abhängig vom aktuellen Feldinhalt das andere Feld über dessen Eigenschaft "Enabled" aktivieren oder deaktivieren:
Me.AnderesFeld.Enabled = Me.JaNeinFeld = True
Es kann dann nur geändert werden, wenn das erste Feld auf "Ja" eingestellt wird. Damit das auch über einen Datensatzwechsel hinweg funktioniert, geben Sie in der Ereignisprozedur "Beim Anzeigen" des Formulars folgende Anweisung ein:
Me.AnderesFeld.Enabled = False
Dadurch wird das zweite Feld generell deaktiviert, wenn Access einen Datensatz anzeigt.