Gibt in Abhängigkeit von der Auswertung eines Ausdrucks einen von zwei Teilen zurück.
Sie können die Funktion Wenn an allen Stellen verwenden, an denen Ausdrücke verwendet werden können. Mithilfe von Wenn können Sie ermitteln, ob ein anderer Ausdruck wahr oder falsch ist. Wenn der Ausdruck wahr (True) ist, gibt Wenn einen Wert zurück; ist der Ausdruck falsch (False), gibt Wenn einen anderen Wert zurück. Sie legen die Werte fest, die von Wenn zurückgegeben werden sollen.
Syntax
IIf(expr,truepart,falsepart)
Die Syntax der Wenn-Funktion weist die folgenden Argumente auf:
| Argument | Beschreibung |
|---|---|
| Ausdruck | Erforderlich. Der Ausdruck, den Sie auswerten möchten. |
| True-Teil | Erforderlich. Wert oder Ausdruck, der zurückgegeben wird, wenn Ausdrucktrue ist. |
| False-Teil | Erforderlich. Wert oder Ausdruck, der zurückgegeben wird, wenn exprfalse ist. |
Hinweise
IIf wertet immer sowohl truepart als auch falsepart aus, obwohl nur eine davon zurückgegeben wird. Deshalb sollten Sie auf unerwünschte Nebeneffekte achten. Wenn beispielsweise die Auswertung von falsepart zu einer Division durch 0 (null) führt, tritt ein Fehler auf, selbst wenn der AusdruckTrue ist.
Beispiele
Verwenden von IIf in einem Formular oder Bericht Angenommen, Sie verfügen über eine Customers-Tabelle, die ein Feld mit dem Namen CountryRegion enthält. In einem Formular möchten Sie angeben, ob Italienisch die erste Sprache des Kontakts ist. Sie können ein Steuerelement hinzufügen und IIf wie folgt in der Steuerelementquelle-Eigenschaft verwenden:
=Wenn([LandRegion]="Italien"; "Italienisch"; "Eine andere Sprache")
Wenn Sie das Formular in der Formularansicht öffnen, zeigt das Steuerelement "Italienisch" an, wenn der Wert für "LandRegion" gleich "Italien" lautet, und es zeigt "Eine andere Sprache" an, wenn "LandRegion" einen anderen Wert aufweist.
Verwenden von IIf in komplexen Ausdrücken Sie können einen beliebigen Ausdruck als beliebigen Teil einer IIf-Anweisung verwenden. Sie können auch IIf-Ausdrücke "verschachteln", sodass Sie eine Reihe abhängiger Ausdrücke auswerten können. Um mit dem vorherigen Beispiel fortzufahren, sollten Sie mehrere unterschiedliche CountryRegion-Werte testen und dann die entsprechende Sprache anzeigen, je nachdem, welcher Wert vorhanden ist:
=Wenn([LandRegion]="Italien"; "Italienisch"; Wenn([LandRegion]="Frankreich"; "Französisch"; Wenn([LandRegion]="Deutschland"; "Deutsch"; "Eine andere Sprache")))
Der Text "Some other language" ist das falsepart-Argument der innersten IIf-Funktion . Da jede geschachtelte IIf-Funktion das falsepart-Argument der IIf-Funktion ist, die sie enthält, wird der Text "Some other language" nur zurückgegeben, wenn alle Expr-Argumente aller IIf-Funktionen als False ausgewertet werden.
Ein weiteres Beispiel: Sie arbeiten an einer Bibliothek. Die Bibliotheksdatenbank verfügt über eine Tabelle mit dem Namen Auschecken, die ein Feld mit dem Namen Fälligkeitsdatum enthält, das das Datum enthält, an dem ein bestimmtes Buch zurücksteht. Sie können ein Formular erstellen, das die status eines ausgecheckten Elements in einem Steuerelement angibt, indem Sie die IIf-Funktion in der Eigenschaft Control Source dieses Steuerelements wie folgt verwenden:
=IIf([Due Date]<Date();"OVERDUE";IIf([Due Date]=Date();"Due Today";"Not Yet Due Due"))
Wenn Sie das Formular in der Formularansicht öffnen, zeigt das Steuerelement "ÜBERFÄLLIG" an, wenn der Wert von "Fälligkeitsdatum" kleiner als das aktuelle Datum ist, "Heute fällig", wenn es mit dem aktuellen Datum übereinstimmt, und andernfalls "Noch nicht fällig".
Hinweis
Um logische Operatoren wie "And" oder "Or" im Argument expr der Funktion IIf zu verwenden, müssen Sie den logischen Ausdruck in die Eval-Funktion einschließen. Sehen Sie sich die folgende Beispieltabelle an.
Verwenden von "Wenn" in einer Abfrage
Die Funktion Wenn wird häufig zum Erstellen von berechneten Feldern in Abfragen verwendet. Die Syntax ist identisch, mit der Ausnahme, dass Sie in einer Abfrage dem Ausdruck einen Feldalias und einen Doppelpunkt (:) anstelle eines Gleichheitszeichens (=) voran stellen müssen. Um das Beispiel oben verwenden zu können, geben Sie in der Zeile Feld des Abfrageentwurfsbereichs Folgendes ein:
Sprache: Wenn([LandRegion]="Italien"; "Italienisch"; "Eine andere Sprache")
In diesem Fall lautet der Feldalias "Sprache:".
Weitere Informationen zum Erstellen von Abfragen und berechneten Feldern finden Sie im Artikel Erstellen einer einfachen Auswahlabfrage.
Verwenden von "Wenn" in VBA-Code
Hinweis
Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
In diesem Beispiel wird die Funktion Wenn verwendet, um den TestMe-Parameter der CheckIt-Prozedur auszuwerten. Wenn der Betrag größer als 1.000 ist, wird das Wort "Groß" zurückgegeben. Andernfalls wird das Wort "Klein" zurückgegeben.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Weitere Beispiele
Ausdruck:
=Wenn([Flughafencode]="ORD";"Chicago";Wenn([Flughafencode]="ATL";"Atlanta";Wenn([Flughafencode]="SEA";"Seattle";"Anderer")))
Ergebnis:
Wenn [Flughafencode] gleich "ORD" ist, wird "Chicago" zurückgegeben. Wenn [Flughafencode] gleich "ATL" ist, wird "Atlanta" zurückgegeben. Wenn [Flughafencode] gleich "SEA" ist, wird "Seattle" zurückgegeben. Andernfalls wird "Anderer" zurückgegeben.
Ausdruck:
=IIf([ShipDate]<Date();"Shipped";IIf([ShipDate]=Date();"Shipping today";"Unshipped"))
Ergebnis:
Wenn [Lieferdatum] vor dem heutigen Datum liegt, wird "Geliefert" zurückgegeben. Wenn [Lieferdatum] gleich dem heutigen Datum ist, wird "Wird heute geliefert" zurückgegeben. Andernfalls wird "Nicht geliefert" zurückgegeben.
Ausdruck:
=IIf([PurchaseDate]<#1/1/2008#;"Old";"New")
Ergebnis:
Wenn [Kaufdatum] vor dem 1.1.2008 liegt, wird "Alt" zurückgegeben. Andernfalls wird "Neu" zurückgegeben.
Ausdruck:
=Wenn(Auswerten([Volt] Zwischen 12 Und 15 Und [Amp] Zwischen 0,25 Und 0,3;"OK";"Nicht kalibriert")
Ergebnis:
Wenn [Volt] zwischen 12 und 15 liegt und [Amp] zwischen 0,25 und 0,3, wird "OK" zurückgegeben. Andernfalls wird "Nicht kalibriert" zurückgegeben.
Ausdruck:
=Wenn(Auswerten([LandRegion] In ("Kanada";"USA";"Mexiko"));"Nordamerika";"Andere")
Ergebnis:
Wenn [LandRegion] gleich "Kanada", "USA" oder "Mexiko" ist, wird "Nordamerika" zurückgegeben. Andernfalls wird "Andere" zurückgegeben.
Ausdruck:
=IIf([Average]>=90;"A";IIf([Average]>=80;"B";IIf([Average]>=70;"C";IIf([Average]>=60;"D";"F")))))
Ergebnis:
Wenn [Durchschnitt] 90 oder höher ist, wird "A" zurückgegeben. Wenn [Durchschnitt] gleich 80 oder größer ist, wird "B" zurückgegeben. Wenn [Durchschnitt] gleich 70 oder größer ist, wird "C" zurückgegeben. Wenn [Durchschnitt] gleich 60 oder größer ist, wird "D" zurückgegeben. Andernfalls wird "F" zurückgegeben.
Hinweis
Wenn Sie die Funktion IIf verwenden, um ein berechnetes Feld in einer Abfrage zu erstellen, ersetzen Sie das Gleichheitszeichen (=) durch einen Feldalias und einen Doppelpunkt (:). Beispiel : Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))