Hiermee wordt een van twee gedeelten als resultaat gegeven, afhankelijk van de evaluatie van een expressie.
U kunt IIf overal gebruiken waar u expressies kunt gebruiken. Gebruik IIf deze regel om te bepalen of een andere expressie waar of onwaar is. Retourneert één waarde als de expressie waar IIf is. Als dit onwaar is, IIf wordt een andere waarde geretourneerd. U geeft de waarden op die IIf het resultaat geven.
Syntaxis
IIf(expr, truepart, falsepart)
De syntaxis van de IIf functie heeft deze argumenten:
| Argument | Beschrijving |
|---|---|
expr |
Vereist. De expressie die u wilt evalueren. |
truepart |
Vereist. De waarde of expressie die wordt geretourneerd als exprTrue. |
falsepart |
Vereist. De waarde of expressie die wordt geretourneerd als exprFalse. |
Opmerkingen
IIf evalueert altijd beide truepart en falsepart, ook al wordt er maar één geretourneerd. Let vanwege dit gedrag op ongewenste bijwerkingen. Bij het evalueren van falsepart resultaten in een deling door nul-fout treedt er bijvoorbeeld een fout op, zelfs als expr dat wel het geval is True.
Voorbeelden
In een formulier of rapport gebruiken IIf
Stel dat u een Customers tabel hebt met een veld met de naam CountryRegion. In een formulier wilt u laten zien of Italiaans de eerste taal van de contactpersoon is. U kunt een besturingselement toevoegen en gebruiken IIf in de Control Source eigenschap ervan:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Wanneer u het formulier opent in de formulierweergave, wordt het besturingselement weergegeven Italian wanneer de waarde voor CountryRegion is Italy. Het wordt weergegeven Some other language wanneer CountryRegion er een andere waarde is.
Gebruik IIf in complexe expressies
U kunt elke expressie in elk deel van een IIf instructie gebruiken. U kunt ook expressies nesten IIf , zodat u een reeks afhankelijke expressies kunt evalueren. Om verder te gaan met het voorgaande voorbeeld, wilt u mogelijk verschillende CountryRegion waarden testen en vervolgens de juiste taal weergeven op basis van de waarde:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
De tekst Some other language is het falsepart argument van de binnenste IIf functie. Aangezien elke geneste IIf functie het falsepart argument is van de IIf functie die de functie bevat, wordt de tekst Some other language alleen geretourneerd als alle expr argumenten van de IIf functies resulteren in False.
Stel dat u in een bibliotheek werkt. De bibliotheekdatabase bevat een tabel met de naam Check Outs die het veld Due Date, bevat met daarin de datum waarop een bepaald boek terug moet komen. U kunt een formulier maken waarin de status van een uitgecheckt item in een besturingselement wordt weergegeven met behulp van de IIf functie in de eigenschap van Control Source dat besturingselement:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Wanneer u het formulier opent in de formulierweergave, wordt in het besturingselement weergegeven OVERDUE of de waarde van Due Date kleiner is dan de huidige datum, Due today of deze gelijk is aan de huidige datum en Not Yet Due als dit niet het geval is.
Opmerking
Als u logische operatoren zoals of AndOr in het expr argument van de IIf functie wilt gebruiken, moet u de logische expressie in de functie Eval plaatsen. Zie de voorbeeldtabel hieronder.
Gebruiken IIf in een query
De IIf functie wordt vaak gebruikt om berekende velden in query's te maken. De syntaxis is hetzelfde, behalve dat u in een query de expressie moet laten voorafgaan door een veldalias en een dubbele punt (:) in plaats van een gelijkteken (=). Typ het volgende in de rij Veld van het queryontwerpraster om het voorgaande voorbeeld te gebruiken:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
Is in dit geval Language: de veldalias.
Zie Een eenvoudige selectiequery maken voor meer informatie over het maken van query's en berekende velden.
Gebruiken IIf in VBA-code
Opmerking
In de volgende voorbeelden ziet u hoe u deze functie kunt gebruiken in een VBA-module (Visual Basic for Applications). Voor meer informatie over het werken met VBA selecteert u Naslaginformatie voor ontwikkelaars in de vervolgkeuzelijst naast Zoeken en typt u een of meer termen in het zoekvak.
In dit voorbeeld wordt de IIf functie gebruikt om de TestMe parameter van de CheckIt procedure te evalueren en wordt het woord Large als resultaat gegeven als het bedrag groter is dan 1000. Anders wordt het woord .Small
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Meer voorbeelden
Expressie:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Resultaat: als
[AirportCode]dit het geval is"ORD", retourneert"Chicago"u . Anders, als[AirportCode]dat zo is"ATL", retourneer"Atlanta". Anders, als[AirportCode]dat zo is"SEA", retourneer"Seattle". Retourneer"Other"anders .Expressie:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Resultaat: als
[ShipDate]deze eerder is dan de datum van vandaag, wordt ."Shipped"Anders, als[ShipDate]gelijk is aan de datum van vandaag, retourneert"Shipping today". Retourneer"Unshipped"anders .Expressie:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Resultaat: als
[PurchaseDate]dit eerder is dan1/1/2008, retourneert"Old"u . Retourneer"New"anders .Expressie:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Resultaat: als
[Volts]een waarde tussen 12 en 15 ligt en[Amps]een waarde tussen 0,25 en 0,3, wordt het resultaat"OK". Retourneer"Out of calibration"anders .Expressie:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Resultaat: If
[CountryRegion]is"Canada","USA", of"Mexico", resultaat"North America". Retourneer"Other"anders .Expressie:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Resultaat: als
[Average]90 of hoger is, wordt de retourwaarde"A". Anders, als[Average]80 of hoger is, retourneert"B". Anders, als[Average]70 of hoger is, geeft u de geretourneerde waarde"C". Anders, als[Average]60 of hoger is, geeft u de retourwaarde"D". Retourneer"F"anders .
Opmerking
Als u de IIf functie gebruikt om een berekend veld in een query te maken, vervangt u het gelijkteken ()= door een veldalias en een dubbele punt ().: Bijvoorbeeld: Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).