window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Access VBA: If…Then

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

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:

If  Then 

Üblicherweise denkt man, dass entweder den Wert True oder False zurückliefern soll. True ist aber nur eine Konstante für den Zahlenwert -1 und False für den Zahlenwert 0. Sie können für allerdings auch andere Zahlenwerte als -1 oder 0 übergeben. Dabei können wir zusammenfassen, dass nur 0 dem Wert False entspricht und alle anderen Zahlenwerte True. Die Bedingung ist also nur in folgenden Fällen nicht erfüllt:

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:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar