In der Programmiersprache VBA für Access gibt es verschiedene Bedingungsarten, und zwar die VBA If Then-Bedingung und die Select Case-Bedingung. Die erste schauen wir uns in diesem Artikel im Detail an. Dabei betrachten wir auch, dass mit If…Then nicht nur eine einzige Bedingung abgefragt werden kann (sogar in einer Zeile), sondern auch nach mehreren Bedingungen unterschieden werden kann. Dazu verwendet man den ElseIf– und den Else-Zweig.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 2101_VBA_IfThen.accdb.
If…Then als Einzeiler unter VBA
Die einfachste Variante der If…Then-Bedingung können Sie als Einzeiler schreiben. Die Syntax lautet in diesem Fall wie folgt:
IfThen
Üblicherweise denkt man, dass
If False Then ... 'False If 0 Then ... 'False
Das gilt natürlich auch für weitere als Bedingung verwendete Konstanten oder Variablen, die den Wert 0 enthalten.
In allen anderen Fällen ist die Bedingung erfüllt:
If True Then ... 'True If -1 Then ... 'True If 1 Then ... 'True
Hinter die If…Then-Anweisung schreiben Sie dann einfach den auszuführenden Befehl, zum Beispiel:
Dim bolMeldung As Boolean bolMeldung = True If bolMeldung = True Then MsgBox "Meldung"
Vereinfachung für boolsche Ausdrücke
An dieser Stelle wollen wir gleich eine Vereinfachung einführen. Statt bolMeldung = True können Sie auch einfach bolMeldung als Bedingung angeben – die Variable enthält ja den Wert True oder False:
If bolMeldung Then MsgBox "Meldung"
bolMeldung enthält in diesem Fall bereits einen Boolean-Wert, den die If…Then-Bedingung auswerten kann.
If…Then als mehrzeiliges VBA-Konstrukt
Sie können in der einzeiligen Version der If…Then-Bedingung zwar auch mehrere durch einen Doppelpunkt getrennte Befehle angeben:
If bolMeldung Then MsgBox "Befehl1": MsgBox "Befehl2"
Dieser Code ist allerdings schlecht lesbar, weshalb wir die typische Schreibweise der If…Then-Bedingung verwenden. Diese hat die folgende Syntax:
IfThen End If
Die einzeilige If…Then-Bedingung von oben formulieren wir wie folgt, was deutlich lesbarer ist:
If bolMeldung Then MsgBox "Erster Befehl" MsgBox "Zweiter Befehl" End If
VBA If…Then mit ElseIf für weitere Bedingungen
Mit dem Schlüsselwort ElseIf erweitern wir eine If…Then-Bedingung um weitere Bedingungen. ElseIf wird wie folgt in das Konstrukt eingearbeitet:
IfThen ElseIf Then End If
Wir können damit also gezielt mehr als eine Bedingung prüfen. Im folgenden Beispiel prüfen wir im If…Then-Teil, ob intZahl den Wert 1 hat. Ist das nicht der Fall, wird die Bedingung im ElseIf-Teil untersucht. Hier prüft die Prozedur, ob intZahl den Wert 2 enthält. Falls ja, wird die in diesem Teil angegebene Meldung ausgegeben. Falls nicht, geschieht gar nichts:
Public Sub ZahlPruefen(intZahl As Integer) If intZahl = 1 Then MsgBox "Zahl ist 1" ElseIf intZahl = 2 Then MsgBox "Zahl ist 2" End If End Sub
Sie können beliebig viele ElseIf-Zweige in diesem Konstrukt unterbringen. Wenn Sie intZahl auch noch auf den Wert 3 prüfen wollen, fügen Sie einen weiteren Zweig mit der entsprechenden MsgBox-Anweisung hinzu:
If intZahl = 1 Then MsgBox "Zahl ist 1" ElseIf intZahl = 2 Then MsgBox "Zahl ist 2" ElseIf intZahl = 3 Then MsgBox "Zahl ist 3" End If
VBA If…Then mit Else für alle anderen Fälle
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: