Returnerar en av två delar, beroende på hur ett uttryck utvärderas.
Du kan använda IIf var som helst där du kan använda uttryck. Används IIf för att avgöra om ett annat uttryck är sant eller falskt. Om uttrycket är sant IIf returneras ett värde. Om det är falskt IIf returneras ett annat värde. Du anger de värden som IIf returneras.
Syntax
IIf(expr, truepart, falsepart)
Funktionssyntaxen IIf har följande argument:
| argument | Beskrivning |
|---|---|
expr |
Obligatoriskt. Uttryck som du vill utvärdera. |
truepart |
Obligatoriskt. Värde eller uttryck som returneras om expr är True. |
falsepart |
Obligatoriskt. Värde eller uttryck som returneras om expr är False. |
Kommentarer
IIf utvärderar alltid både truepart och falsepart, även om endast en av dem returneras. På grund av detta beteende, titta efter oönskade biverkningar. Om utvärderingen falsepart till exempel resulterar i ett division-vid-noll-fel uppstår ett fel även om expr det är True.
Exempel
Använda IIf i ett formulär eller en rapport
Anta att du har en Customers tabell som innehåller ett fält med namnet CountryRegion. I ett formulär vill du visa om italienska är den första språk för kontakten. Du kan lägga till en kontroll och använda IIf den i egenskapen Control Source :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
När du öppnar formuläret i formulärvyn visas Italian kontrollen när värdet för CountryRegion är Italy. Den visas Some other language när den CountryRegion har något annat värde.
Använda IIf i komplexa uttryck
Du kan använda valfritt uttryck i valfri del av ett IIf uttryck. Du kan också kapsla IIf uttryck, vilket gör att du kan utvärdera en serie beroende uttryck. Om du vill fortsätta med föregående exempel kanske du vill testa flera olika CountryRegion värden och sedan visa rätt språk baserat på värdet:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Texten Some other language är argumentet för falsepart funktionen längst ned i innersta IIf . Eftersom varje kapslad funktion är falsepart argumentet för den IIf funktion som innehåller den, returneras texten Some other language endast om alla argument i exprIIf funktionerna utvärderas till False.IIf
Anta till exempel att du arbetar på ett bibliotek. Biblioteksdatabasen har en tabell som Check Outs innehåller ett fält med namnet Due Date, som innehåller datumet då en viss bok ska vara tillbaka. Du kan skapa ett formulär som visar status för ett utcheckat objekt i en kontroll med hjälp av funktionen i egenskapen för den IIf kontrollen Control Source :
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
När du öppnar formuläret i formulärvyn visas OVERDUE kontrollen om värdet Due Date för är mindre än dagens datum, Due today om det är lika med dagens datum och Not Yet Due annars.
Obs
Om du vill använda logiska operatorer, till exempel And eller Or i expr funktionens IIf argument, måste du omge det logiska uttrycket med funktionen Utvärdera . Se följande exempeltabell.
Använda IIf i en fråga
Funktionen IIf används ofta för att skapa beräknade fält i frågor. Syntaxen är densamma, förutom att du i en fråga måste inleda uttrycket med ett fältalias och ett kolon (:) i stället för ett likhetstecken (=). Om du vill använda föregående exempel skriver du följande på raden Fält i frågerutnätet:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
I det här fallet Language: är fältaliaset.
Mer information om hur du skapar frågor och beräknade fält finns i Skapa en enkel urvalsfråga.
Använda IIf I VBA-kod
Obs
Följande exempel visar hur du använder den här funktionen i en VBA-modul (Visual Basic for Applications). Om du vill ha mer information om hur du arbetar med VBA väljer du Utvecklarreferens i listrutan bredvid Sök och anger sedan ett eller flera termer i sökrutan.
I det IIf här exemplet används funktionen för att utvärdera parametern TestMe för proceduren CheckIt och returnerar ordet Large om beloppet är större än 1 000. Annars returneras ordet Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Fler exempel
Uttryck:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Resultat: Om
[AirportCode]är"ORD", returnerar"Chicago". Annars, om[AirportCode]är"ATL", returnerar"Atlanta". Annars, om[AirportCode]är"SEA", returnerar"Seattle". Annars returnerar du"Other".Uttryck:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Resultat: Om
[ShipDate]är tidigare än dagens datum returnerar du"Shipped". Annars returnerar"Shipping today"du om[ShipDate]det är lika med dagens datum. Annars returnerar du"Unshipped".Uttryck:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Resultat: Om
[PurchaseDate]är tidigare än1/1/2008, returnerar"Old". Annars returnerar du"New".Uttryck:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Resultat: Om
[Volts]är mellan 12 och 15 och[Amps]är mellan 0,25 och 0,3, returnerar du"OK". Annars returnerar du"Out of calibration".Uttryck:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Resultat: Om
[CountryRegion]är"Canada","USA"eller"Mexico", returneras"North America". Annars returnerar du"Other".Uttryck:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Resultat: Om
[Average]är 90 eller större returnerar du"A". Annars, om[Average]är 80 eller större, returnerar du"B". Annars, om[Average]är 70 eller större, returnerar du"C". Annars returnerar"D"du om[Average]det är 60 eller större. Annars returnerar du"F".
Obs
Om du använder IIf funktionen för att skapa ett beräknat fält i en fråga ersätter du likhetstecknet (=) med ett fältalias och ett kolon (:). Till exempel Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).