VBA: If-Syntax Frage

TS-JC

Erfahrenes Mitglied
Hallo zusammen,

hoffe bin hier richtig.

Also meine Frage.. warum ist der folgende Code 4-zeilig? Geht der nicht kleiner?
Code:
If abfrage = vbYes Then
   rst![freigabe] = True
Else: rst![freigabe] = False
End If

Viel schöner wäre es so, also für mich zumindest übersichtlicher
Code:
If abfrage = vbYes Then rst![freigabe] = True
Else: rst![freigabe] = False
 
Hi.

Visual Basic:
rst![freigabe] = abfrage = vbYes
Gruß

PS: Es gibt auch eine verkürzte Version von if. Diese mußt du aber auf eine Zeile schreiben:
Visual Basic:
if abfrage = vbYes then y = True else y = False
 
Zuletzt bearbeitet:
Dein zweites Beispiel mit einer Zeile kannte ich schon, jedoch wäre es übersichtlicher das Ganze auf 2 zu vergrößern.

Das Erste verstehe ich hingehen nicht.
Also im Zusammenhang. Wo müsste ich das einsetzen?
 
Dein zweites Beispiel mit einer Zeile kannte ich schon, jedoch wäre es übersichtlicher das Ganze auf 2 zu vergrößern.
Dann müßtest du die Zeilenfortsetzung verwenden:
Visual Basic:
if abfrage = vbYes then y = True _
else y = False
So ist es technisch zwar immer noch auf einer Zeile, optisch aber zweizeilig.
Das Erste verstehe ich hingehen nicht.
Also im Zusammenhang. Wo müsste ich das einsetzen?
Damit würdest du die gesamte if-Abfrage ersetzen, also alle 4 Zeilen.

Gruß
 
Stimmt an das _ hatte ich nicht gedacht.
Werd es wohl dann mal so machen

Die andere Lösung.. scheint aber evt sogar besser zu sein. Allerdings war mir die Syntax in der Art neu, von daher auf den ersten Blick nicht eindeutig.

Danke jedenfalls
 
Stimmt an das _ hatte ich nicht gedacht.
Werd es wohl dann mal so machen

Die andere Lösung.. scheint aber evt sogar besser zu sein. Allerdings war mir die Syntax in der Art neu, von daher auf den ersten Blick nicht eindeutig.
Ja, leider verwendet VB / VBS / VBA für den Vergleichsoperator und den Zuweisungsoperator das gleiche Zeichen. Eigentlich verwende ich dann immer explizit Klammern um die Lesbarkeit zu erhöhen:
Visual Basic:
rst![freigabe] = (abfrage = vbYes)
Gruß
 
Zurück