Formularfelder in Abhängigkeit anderer Felder belegen

Bei der Eingabe in einem Access-Formular kommt es häufig zu gleichen Kombinationen der Inhalte verschiedener Felder. Ich möchte nun ohne ein Kombinationsfeld die Möglichkeit haben, in einem Feld einen Standardwert zu erhalten, falls in einem anderen Feld ein bestimmter Wert eingegeben wird. Können Sie mir helfen?

Ihren Wunsch können Sie mit einer VBA-Funktion realisieren. Dieser Tipp soll das Vorgehen anhand eines Beispiels erläutern. Nehmen Sie an, Sie wollen ein Formular mit den beiden Fehlern »Eingabe« und »Wirkung« realisieren. Falls der Anwender nun im Feld »Eingabe« die Zeichenkette »Ja« oder »Nein« einträgt, soll Access mit einer speziellen Default-Belegung im Feld »Wirkung« reagieren.

Nachdem Sie das Formular entworfen und die beiden Eingabefelder »Eingabe« und »Wirkung« erzeugt haben, klicken Sie mit der rechten Maustaste auf das Feld »Eingabe« und öffnen im Kontextmenü den Dialog »Eigenschaften«. Wählen Sie das Register »Ereignis« und klicken Sie rechts neben der Eigenschaft »Nach Aktualisierung« auf die Schaltfläche »...«. Im Dialog »Editor auswählen« markieren Sie den »Code-Editor« und bestätigen mit »OK«. Access legt nun die VBA-Prozedur »Eingabe_AfterUpdate()« an, die immer ausgeführt wird, wenn Access Daten im Feld »Eingabe« aktualisiert.

Alles weitere erreichen Sie mit einfachen VBA-Befehlen. Zuerst lesen Sie das Feld »Eingabe« aus und bestimmen dann zum Beispiel mit einer »Select Case«-Anweisung den gewünschten Inhalt des Feldes »Wirkung«, das Sie danach auch umgehend belegen:



Private Sub Eingabe_AfterUpdate()

Select Case Me!Eingabe
Case äjaä, äJAä, äJaä
Me!Wirkung = äWirkung von JAä
Case äneinä, äNEINä, äNeinä Me!Wirkung = äWirkung von NEINä
Case Else
Me!Wirkung = äKeine Wirkungä
End Select

End Sub



Für die Realisierung sind einige Varianten denkbar. So können Sie zuerst feststellen, ob der Anwender bereits eine Eingabe in das Feld »Wirkung« vornahm und in diesem Fall die Default-Belegung unterdrücken. Sie sollten allerdings sicherstellen, dass es nicht zu ungewollten Nebeneffekten kommt.