Access VBA: Select Case

Neben der If…Then-Bedingung gibt es noch eine weitere Bedingung unter Access VBA. Diese heißt Select Case und sie bietet in vielen Fällen eine praktische Alternative zur If…Then-Bedingung. Das gilt insbesondere, wenn auf der einen Seite des Vergleichsausdrucks immer die gleiche Variable oder der gleiche Wert steht, der mit anderen Werten verglichen werden soll. Auf den folgenden Seiten stellen wir die Select Case-Verzweigung mit allen Varianten und Möglichkeiten vor.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 2101_VBA_SelectCase.accdb.

Syntax der Select Case-Bedingung

Die Select Case-Bedingung enthält in der ersten Zeile die Schlüsselwörter Select Case sowie den ersten Teil des Vergleichs, also praktisch den Teil links vom Operator.

Abgeschlossen wird die Select Case-Bedingung von der Zeile End Select. Dazwischen befinden sich mehrere Case-Zeilen. Diese enthalten entweder einen oder mehrere Vergleichsausdrücke oder das Schlüsselwort Else. Einer jeden Case-Zeile folgen keine, eine oder mehrere Anweisungen, die ausgeführt werden, wenn die jeweilige Bedingung erfüllt ist:

Select Case 
    Case 
        
    Case 
        
    ... weitere Zweige
    Case Else
        
End Select

Dabei durchläuft die Select Case-Verzweigung die einzelnen Case-Zweige, bis einer davon die Bedingung erfüllt. Die in diesem Zweig steckenden Anweisungen werden dann ausgeführt und danach wird die Select Case-Verzweigung verlassen.

Einfaches Beispiel für die VBA Select Case-Verzweigung

Im ersten Beispiel fragt eine InputBox eine Zahl ab und trägt diese in die Variable i ein. Danach steigen wir in die Select Case-Anweisung ein. Diese verwendet die Zahl i als ersten Teil des Vergleichsausdrucks, also quasi als den Teil auf der linken Seite des Vergleichsoperators.

Die folgenden Case-Zweige enthalten jeweils einen Zahlenwert, der dem zweiten Teil des Vergleichsausdrucks rechts vom Vergleichsoperator entspricht. Wenn kein Vergleichsoperator angegeben wurde, verwendet Select Case das Gleichheitszeichen als Vergleichsoperator.

Der erste Case-Zweig vergleicht also den Wert von i mit der Zahl 1. Hat der Benutzer die Zahl 1 eingegeben, ist diese Bedingung erfüllt und die Meldung mit dem Text Sie haben 1 eingegeben wird angezeigt. Die übrigen Case-Zweige werden nicht mehr berücksichtigt. Wenn der Benutzer den Wert 2 oder 3 eingegeben hat, werden der zweite oder der dritte Zweig angesteuert. Hat der Benutzer einen anderen Zahlenwert eingegeben, läuft die Prozedur bis zum Case Else-Zweig der Verzweigung und gibt die dort angegebene Meldung aus:

Public Sub EinfachesBeispiel()
    Dim i As Integer
    i = InputBox("Geben Sie eine Zahl zwischen " _
        & "1 und 3 ein.", , 0)
    Select Case i
        Case 1
            MsgBox "Sie haben 1 eingegeben."
        Case 2
            MsgBox "Sie haben 2 eingegeben."
        Case 3
            MsgBox "Sie haben 3 eingegeben."
        Case Else
            MsgBox "Keine gültige Zahl."
    End Select
End Sub

Weitere Vergleichsoperatoren für Select Case

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:

Schreibe einen Kommentar