Von VBA zu C#: Bedingungen

Unter Access-VBA haben Sie als Bedingungen die Befehlsstrukturen If…Then und deren Varianten sowie Select Case kennen gelernt. Außerdem gibt es noch Funktionen, mit denen sich bestimmte Werte in Abhängigkeit des Wertes eines Parameters zurückgeben lassen – zum Beispiel IIf oder Choose. Unter C# sieht dies etwas anders aus, vor allem wegen der Strukturierung mit geschweiften Klammern und des fehlenden End-Schlüsselwortes. Dieser Beitrag stellt die Pendants zu den VBA-Bedingungen vor.

Einfaches If…Then

Die übliche If…Then-Bedingung bauen Sie in VBA wie folgt auf:

If intZahl = 0 Then
     MsgBox "Die Zahl lautet Null."
End If

Unter C# können Sie diese Bedingung sogar noch einfacher schreiben:

if (Zahl == 0)
     Console.WriteLine("Die Zahl lautet Null.");

Wenn Sie diese Anweisungen ausprobieren möchten, erstellen Sie eine neue C#-Konsolenanwendung mit Visual Studio und ergänzen die Main-Prozedur wie folgt:

static void Main(string[] args) {
     int Zahl;
     Console.WriteLine("Geben Sie eine ganze Zahl ein.");
     Zahl = Convert.ToInt32( Console.ReadLine());
     if (Zahl == 0)
         Console.WriteLine("Die Zahl lautet Null.");
}

Das Ergebnis sieht dann etwa wie in Bild 1 aus. Wieso aber gelingt dies mit nur zwei Zeilen – und auch noch ohne geschweifte Klammern Nun: Dies ist eine vereinfachte Form, bei der Sie nur eine einzige Zeile eingeben dürfen. Sobald Sie mehr als eine Zeile verwenden wollen, müssen Sie die Anweisungen in geschweifte Klammern einfassen. Dies können Sie der Konsistenz halber allerdings auch bereits bei Verwendung einer einzigen Anweisung tun:

Ausgabe eines Ergebnisses per If-Bedingung

Bild 1: Ausgabe eines Ergebnisses per If-Bedingung

if (Zahl == 0) {
     Console.WriteLine("Die Zahl lautet Null.");
}

Die If…Then-Bedingung gerät unter C# auf jeden Fall zur If-Bedingung, denn das Schlüsselwort Then wird ja hier gar nicht benötigt.

If…Then…Else-Bedingung

Nehmen wir noch einen Else-Zweig hinzu. Unter VBA verwenden Sie folgende Struktur:

If intZahl = 0 Then
     MsgBox "Die Zahl lautet Null."
Else
     MsgBox "Die Zahl lautet nicht Null."
End If

Unter C# könnten Sie hier wieder die Syntax für die Einzeiler verwenden:

Unter Access-VBA haben Sie als Bedingungen die Befehlsstrukturen If…Then und deren Varianten sowie Select Case kennen gelernt. Außerdem gibt es noch Funktionen, mit denen sich bestimmte Werte in Abhängigkeit des Wertes eines Parameters zurückgeben lassen – zum Beispiel IIf oder Choose. Unter C# sieht dies etwas anders aus, vor allem wegen der Strukturierung mit geschweiften Klammern und des fehlenden End-Schlüsselwortes. Dieser Beitrag stellt die Pendants zu den VBA-Bedingungen vor.

Einfaches If…Then

Die übliche If…Then-Bedingung bauen Sie in VBA wie folgt auf:

If intZahl = 0 Then
     MsgBox "Die Zahl lautet Null."
End If

Unter C# können Sie diese Bedingung sogar noch einfacher schreiben:

if (Zahl == 0)
     Console.WriteLine("Die Zahl lautet Null.");

Wenn Sie diese Anweisungen ausprobieren möchten, erstellen Sie eine neue C#-Konsolenanwendung mit Visual Studio und ergänzen die Main-Prozedur wie folgt:

static void Main(string[] args) {
     int Zahl;
     Console.WriteLine("Geben Sie eine ganze Zahl ein.");
     Zahl = Convert.ToInt32( Console.ReadLine());
     if (Zahl == 0)
         Console.WriteLine("Die Zahl lautet Null.");
}

Das Ergebnis sieht dann etwa wie in Bild 1 aus. Wieso aber gelingt dies mit nur zwei Zeilen – und auch noch ohne geschweifte Klammern Nun: Dies ist eine vereinfachte Form, bei der Sie nur eine einzige Zeile eingeben dürfen. Sobald Sie mehr als eine Zeile verwenden wollen, müssen Sie die Anweisungen in geschweifte Klammern einfassen. Dies können Sie der Konsistenz halber allerdings auch bereits bei Verwendung einer einzigen Anweisung tun:

Ausgabe eines Ergebnisses per If-Bedingung

Bild 1: Ausgabe eines Ergebnisses per If-Bedingung

if (Zahl == 0) {
     Console.WriteLine("Die Zahl lautet Null.");
}

Die If…Then-Bedingung gerät unter C# auf jeden Fall zur If-Bedingung, denn das Schlüsselwort Then wird ja hier gar nicht benötigt.

If…Then…Else-Bedingung

Nehmen wir noch einen Else-Zweig hinzu. Unter VBA verwenden Sie folgende Struktur:

If intZahl = 0 Then
     MsgBox "Die Zahl lautet Null."
Else
     MsgBox "Die Zahl lautet nicht Null."
End If

Unter C# könnten Sie hier wieder die Syntax für die Einzeiler verwenden:

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →