Retourneert een van twee delen, afhankelijk van de evaluatie van een expressie.
U kunt IIf overal gebruiken waar u expressies kunt gebruiken. U gebruikt IIf om te bepalen of een andere expressie waar of onwaar is. Als de expressie true is, retourneert IIf één waarde; als deze onwaar is, retourneert IIf een andere. U geeft de waarden op die IIf retourneert.
Syntaxis
IIf ( expr , truepart , falsepart )
De syntaxis van de functie IIf heeft deze argumenten:
Argument |
Beschrijving |
expr |
Vereist. Expressie die u wilt evalueren. |
alswaar |
Vereist. De waarde of expressie die wordt geretourneerd als exprWaar is. |
alsonwaar |
Vereist. De waarde of expressie die wordt geretourneerd als exprOnwaar is. |
Opmerkingen
IIf evalueert altijd zowel truepart als falsepart, ook al retourneert het slechts één ervan. Daarom moet u watch voor ongewenste bijwerkingen. Als het evalueren van falsepart bijvoorbeeld resulteert in een deling op nul-fout, treedt er een fout op, zelfs als exprWaar is.
Voorbeelden
IIf gebruiken in een formulier of rapport Stel dat u een tabel Klanten hebt met een veld met de naam CountryRegion. In een formulier wilt u aangeven of Italiaans de eerste taal van de contactpersoon is. U kunt een besturingselement toevoegen en IIf gebruiken in de eigenschap Besturingselementbron , zoals:
=IIf([LandRegio]="Italië", "Italiaans", "Een andere taal")
Wanneer u het formulier opent in de formulierweergave, wordt 'Italiaans' weergegeven wanneer de waarde voor Landregio Italië is en 'Een andere taal' wanneer CountryRegion een andere waarde is.
IIf gebruiken in complexe expressies U kunt elke expressie gebruiken als onderdeel van een IIf-instructie . U kunt ook IIf-expressies 'nesten', zodat u een reeks afhankelijke expressies kunt evalueren. Als u wilt doorgaan met het voorgaande voorbeeld, wilt u mogelijk testen op verschillende waarden voor Land/regio en vervolgens de juiste taal weergeven, afhankelijk van de waarde die bestaat:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegio]="Germany", "German", "Some other language")))
De tekst 'Een andere taal' is het argument falsepart van de binnenste IIf-functie . Omdat elke geneste IIf-functie het argument falsepart is van de functie IIf die deze bevat, wordt de tekst 'Een andere taal' alleen geretourneerd als alle exprarargumenten van alle IIf-functies onwaar zijn.
Stel dat u bij een bibliotheek werkt. De bibliotheekdatabase bevat een tabel met de naam Uitchecken die een veld met de naam Einddatum bevat dat de datum bevat waarop een bepaald boek terug moet. U kunt een formulier maken dat de status van een uitgecheckt item in een besturingselement aangeeft met behulp van de functie IIf in de eigenschap Besturingselementbron van dat besturingselement, zoals:
=IIf([Vervaldatum]<Date(),"OVERDUE",IIf([Vervaldatum]=Date(),"Einddatum";"Nog niet verschuldigd"))
Wanneer u het formulier opent in de formulierweergave, wordt in het besturingselement 'OVERDUE' weergegeven als de waarde van vervaldatum kleiner is dan de huidige datum, 'Einddatum vandaag' als deze gelijk is aan de huidige datum en 'Nog niet voltooid' anders.
Opmerking: Als u logische operatoren zoals 'En' of 'Of' wilt gebruiken in het argument expr van de functie IIf, moet u de logische expressie in de functie Eval insluiten. Zie de volgende voorbeeldtabel.
IIf gebruiken in een query
De functie IIf wordt vaak gebruikt om berekende velden in query's te maken. De syntaxis is hetzelfde, met uitzondering 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:
Taal: IIf([LandRegio]="Italië", "Italiaans", "Een andere taal")
In dit geval is 'Taal:' de veldalias.
Zie het artikel Een eenvoudige selectiequery maken voor meer informatie over het maken van query's en berekende velden.
IIf gebruiken in VBA-code
Opmerking: In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.
In dit voorbeeld wordt de functie IIf gebruikt om de parameter TestMe van de CheckIt-procedure te evalueren en wordt het woord 'Large' geretourneerd als de hoeveelheid groter is dan 1000; anders wordt het woord 'Klein' geretourneerd.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Meer voorbeelden
Expression |
Resultaten |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other"))) |
Als [AirportCode] "ORD" is, retourneert u "Chicago". Als [AirportCode] anders 'ATL' is, retourneert u 'Atlanta'. Als [AirportCode] anders 'SEA' is, retourneert u 'Seattle'. Anders retourneert u 'Overige'. |
=IIf([Verzenddatum]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today";"Unshipped")) |
Als [Verzenddatum] vóór de datum van vandaag valt, retourneert u 'Verzonden'. Als [Verzenddatum] gelijk is aan de datum van vandaag, retourneert u 'Verzend vandaag'. Anders retourneert u 'Niet-verschepen'. |
=IIf([Aankoopdatum]<#1-1-2008#,"Oud";"Nieuw") |
Als [Aankoopdatum] vóór 1-1-2008 ligt, retourneert u 'Oud'. Anders retourneert u 'Nieuw'. |
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0,25 And 0,3),"OK","Out of kalibratie") |
Als [Volt] tussen 12 en 15 ligt en [Ampère] tussen 0,25 en 0,3 ligt, retourneer dan "OK". Anders retourneert u 'Geen kalibratie'. |
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"Noord-Amerika";"Other") |
Als [Landregio] 'Canada', 'USA' of 'Mexico' is, retourneert u 'Noord-Amerika'. Anders retourneert u 'Overige'. |
=IIf([Gemiddelde]>=90,"A",IIf([Gemiddelde]>=80,"B",IIf([Gemiddelde]>=70,"C",IIf([Gemiddelde]>=60;"D","F"))) |
Als [Gemiddelde] 90 of hoger is, retourneert u 'A'. Als [Gemiddelde] 80 of hoger is, retourneert u 'B'. Als [Gemiddelde] 70 of hoger is, retourneert u 'C'. Als [Gemiddelde] 60 of hoger is, retourneert u 'D'. Anders retourneert u 'F'. |
Opmerking: Als u de functie IIf 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"))