Gibt in Abhängigkeit von der Auswertung eines Ausdrucks einen von zwei Teilen zurück.
Sie können überall dort verwenden IIf , wo Sie Ausdrücke verwenden können. Wird verwendet IIf , um festzustellen, ob ein anderer Ausdruck wahr oder falsch ist. Wenn der Ausdruck wahr ist, IIf wird ein Wert zurückgegeben. Wenn der Wert "false" ist, IIf wird ein anderer Wert zurückgegeben. Sie geben die Werte an, die IIf zurückgegeben werden.
Syntax
IIf(expr, truepart, falsepart)
Die IIf Funktionssyntax weist die folgenden Argumente auf:
| Argument | Beschreibung |
|---|---|
expr |
Erforderlich. Der auszuwertende Ausdruck. |
truepart |
Erforderlich. Wert oder Ausdruck, der zurückgegeben wird, wenn expr ist True. |
falsepart |
Erforderlich. Wert oder Ausdruck, der zurückgegeben wird, wenn expr ist False. |
Hinweise
IIf wertet immer sowohl als auch truepartfalsepartaus, obwohl nur eine von ihnen zurückgegeben wird. Achten Sie aufgrund dieses Verhaltens auf unerwünschte Nebeneffekte. Wenn die Auswertung falsepart beispielsweise zu einem Division-durch-Null-Fehler führt, tritt ein Fehler auf, auch wenn expr ist True.
Beispiele
Verwenden IIf in einem Formular oder Bericht
Angenommen, Sie verfügen über eine Customers Tabelle, die ein Feld namens enthält CountryRegion. In einem Formular möchten Sie anzeigen, ob Italienisch die erste Sprache des Kontakts ist. Sie können ein Steuerelement hinzufügen und in seiner Control Source Eigenschaft verwendenIIf:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Wenn Sie das Formular in der Formularansicht öffnen, wird Italian das Steuerelement immer angezeigt, wenn der Wert für CountryRegion ist Italy. Es wird angezeigt Some other language , wenn CountryRegion ein anderer Wert vorliegt.
Verwendung IIf in komplexen Ausdrücken
Sie können jeden beliebigen Ausdruck in jedem Teil einer IIf Anweisung verwenden. Sie können auch Ausdrücke schachteln IIf , wodurch Sie eine Reihe abhängiger Ausdrücke auswerten können. Um mit dem vorherigen Beispiel fortzufahren, können Sie mehrere verschiedene CountryRegion Werte testen und dann die entsprechende Sprache basierend auf dem Wert anzeigen:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Der Text Some other language ist das falsepart Argument der innersten IIf Funktion. Da jede verschachtelte 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 der IIf Funktionen als ausgewertet werden False.
Ein weiteres Beispiel: Angenommen, Sie arbeiten in einer Bibliothek. Die Bibliotheksdatenbank hat eine Tabelle mit dem Namen Check Outs , die ein Feld namens Due Dateenthält, das das Datum enthält, an dem ein bestimmtes Buch zurückfällig ist. Sie können ein Formular erstellen, das den Status eines ausgecheckten Elements in einem Steuerelement anzeigt, indem Sie die Funktion in der IIf Eigenschaft dieses Steuerelements Control Source verwenden:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Wenn Sie das Formular in der Formularansicht öffnen, wird das Steuerelement angezeigt OVERDUE , wenn der Wert von Due Date kleiner als das aktuelle Datum ist, Due today ob er dem aktuellen Datum entspricht oder Not Yet Due andernfalls.
Hinweis
Um logische Operatoren wie And oder Or im expr Argument der IIf Funktion zu verwenden, müssen Sie den logischen Ausdruck in die Eval-Funktion einschließen. Weitere Informationen finden Sie in der folgenden Beispieltabelle.
Verwendung IIf in einer Abfrage
Die IIf Funktion wird häufig verwendet, um berechnete Felder in Abfragen zu erstellen. Die Syntax ist identisch, mit dem Unterschied, dass Sie in einer Abfrage dem Ausdruck einen Feldalias und einen Doppelpunkt (:) anstelle eines Gleichheitszeichens (=) voranstellen müssen. Geben Sie zur Verwendung des vorstehenden Beispiels Folgendes in die Zeile Feld des Abfrageentwurfsbereichs ein:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
In diesem Fall Language: ist das Feld alias.
Weitere Informationen zum Erstellen von Abfragen und berechneten Feldern finden Sie unter Erstellen einer einfachen Auswahlabfrage.
Verwendung IIf in VBA-Code
Hinweis
In den folgenden Beispielen wird gezeigt, wie Sie diese Funktion in einem Visual Basic for Applications (VBA)-Modul verwenden. Um weitere Informationen zum Arbeiten mit VBA zu erhalten, wählen Sie in der Dropdownliste neben "Suchen" die Option "Entwicklerreferenz" aus, und geben Sie dann mindestens einen Begriff in das Suchfeld ein.
In diesem Beispiel wird die IIf Funktion verwendet, um den TestMe Parameter der CheckIt Prozedur auszuwerten, und das Wort Large zurückgegeben, wenn der Wert größer als 1000 ist. Andernfalls wird das Wort Smallzurückgegeben.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Weitere Beispiele
Ausdruck:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Result: If
[AirportCode]is"ORD", return"Chicago". Andernfalls ist if[AirportCode]is"ATL", return"Atlanta". Andernfalls ist if[AirportCode]is"SEA", return"Seattle". Andernfalls return ."Other"Ausdruck:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Ergebnis: Wenn
[ShipDate]ist vor dem heutigen Datum, return"Shipped". Andernfalls, wenn[ShipDate]gleich dem heutigen Datum ist, return"Shipping today". Andernfalls return ."Unshipped"Ausdruck:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Ergebnis: Wenn
[PurchaseDate]ist früher als1/1/2008, return"Old". Andernfalls return ."New"Ausdruck:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Ergebnis: Wenn
[Volts]liegt der Wert zwischen 12 und 15 und[Amps]liegt zwischen 0,25 und 0,3, return"OK". Andernfalls return ."Out of calibration"Ausdruck:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Ergebnis: If
[CountryRegion]is"Canada","USA"or"Mexico", return"North America". Andernfalls return ."Other"Ausdruck:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Ergebnis: Wenn
[Average]90 oder höher ist, return"A". Andernfalls, wenn[Average]80 oder höher ist, return ."B"Andernfalls, wenn[Average]der Wert 70 oder höher ist, return ."C"Andernfalls, wenn[Average]60 oder höher ist, return ."D"Andernfalls return ."F"
Hinweis
Wenn Sie die IIf Funktion zum Erstellen eines berechneten Felds in einer Abfrage verwenden, ersetzen Sie das Gleichheitszeichen (=) durch einen Feldalias und einen Doppelpunkt (:). Beispiel: Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).