Hiermee wordt een van twee gedeelten als resultaat gegeven, afhankelijk van de evaluatie van een expressie.
U kunt overal gebruiken IIf waar u expressies kunt gebruiken. Gebruik IIf om te bepalen of een andere expressie waar of onwaar is. Als de expressie true is, IIf wordt één waarde geretourneerd. Als deze onwaar is, IIf wordt een andere waarde geretourneerd. U geeft de waarden op die IIf worden geretourneerd.
Syntaxis
IIf(expr, truepart, falsepart)
De IIf syntaxis van de functie heeft deze argumenten:
| Argument | Beschrijving |
|---|---|
expr |
Vereist. Expressie die u wilt evalueren. |
truepart |
Vereist. De waarde of expressie die wordt geretourneerd als expr is True. |
falsepart |
Vereist. De waarde of expressie die wordt geretourneerd als expr is False. |
Opmerkingen
IIf evalueert altijd zowel als truepartfalsepart, ook al retourneert het maar één ervan. Vanwege dit gedrag, let op ongewenste bijwerkingen. Als de evaluatie falsepart bijvoorbeeld resulteert in een deling-op-nul-fout, treedt er een fout op, zelfs als expr is True.
Voorbeelden
Gebruiken IIf in een formulier of rapport
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 bijbehorende eigenschap:
=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. Deze wordt weergegeven Some other language wanneer CountryRegion er een andere waarde is.
Gebruiken IIf in complexe expressies
U kunt elke expressie in elk deel van een IIf instructie gebruiken. U kunt ook expressies nesten IIf , waarmee u een reeks afhankelijke expressies kunt evalueren. Als u wilt doorgaan 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. Omdat elke geneste IIf functie het falsepart argument is van de IIf functie die deze bevat, wordt de tekst Some other language alleen geretourneerd als alle expr argumenten van de IIf functies worden geëvalueerd als False.
Stel dat u in een bibliotheek werkt. De bibliotheekdatabase heeft een tabel met de naam Check Outs die een veld bevat met de naam Due Date, dat de datum bevat waarop een bepaald boek moet worden teruggerekend. U kunt een formulier maken met de status van een uitgecheckt item in een besturingselement met behulp van de functie in de IIf 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 anders.
Opmerking
Als u logische operatoren wilt gebruiken, zoals And of Or in het expr argument van de IIf functie, moet u de logische expressie in de functie Eval insluiten. Zie de volgende voorbeeldtabel.
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 voorwoorden met een veldalias en een dubbele punt (:) in plaats van een gelijkteken (=). Als u het voorgaande voorbeeld wilt gebruiken, typt u het volgende in de rij Veld van het queryontwerpraster:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
In dit geval Language: is 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 gebruikt 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 voert u een of meer termen in het zoekvak in.
In dit voorbeeld wordt de IIf functie gebruikt om de TestMe parameter van de CheckIt procedure te evalueren en wordt het woord Large geretourneerd als de hoeveelheid groter is dan 1000. Anders wordt het woord Smallgeretourneerd.
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]is"ORD", retourneert"Chicago"u . Anders, als[AirportCode]is"ATL", retourneert"Atlanta"u . Anders, als[AirportCode]is"SEA", retourneert"Seattle"u . Anders retourneert"Other"u .Expressie:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Resultaat: Als
[ShipDate]het eerder is dan de datum van vandaag, retourneert"Shipped"u . Anders, als[ShipDate]gelijk is aan de datum van vandaag, retourneert"Shipping today"u . Anders retourneert"Unshipped"u .Expressie:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Resultaat: Als
[PurchaseDate]eerder is dan1/1/2008, retourneert"Old"u . Anders retourneert"New"u .Expressie:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Resultaat: Als
[Volts]tussen 12 en 15 ligt en[Amps]tussen 0,25 en 0,3 ligt, retourneert"OK"u . Anders retourneert"Out of calibration"u .Expressie:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Resultaat: Als
[CountryRegion]is"Canada","USA"of"Mexico", retourneert"North America"u . Anders retourneert"Other"u .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, retourneert"A"u . Anders, als[Average]80 of hoger is, retourneert"B"u . Anders, als[Average]70 of hoger is, retourneert"C"u . Anders, als[Average]60 of hoger is, retourneert"D"u . Anders retourneert"F"u .
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")).