Funktionen OOM

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.

Visa några exempel

Syntax

IIf(expr, truepart, falsepart)

Funktionens IIf syntax har följande argument:

argument Beskrivning
expr Obligatoriskt. Ett 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åda truepart och falsepart, även om den bara returnerar en av dem. På grund av detta beteende, se upp för oönskade biverkningar. Om utvärderingen falsepart till exempel resulterar i ett divisions-vid-noll-fel uppstår ett fel även om expr ä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 kontaktens första språk. Du kan lägga till en kontroll och använda IIf i dess Control Source egenskap:

=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 när CountryRegion den har Some other language något annat värde.

Använda IIf i komplexa uttryck

Du kan använda valfritt uttryck i valfri del av en IIf instruktion. Du kan också kapsla IIf uttryck, vilket låter dig utvärdera en serie underordnade 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 den innersta IIf funktionen. Eftersom varje kapslad IIf funktion är falsepart argument för IIf funktionen som innehåller den, returneras texten Some other language bara om alla argument för funktionerna utvärderas exprIIf till False.

Ett annat exempel är att du arbetar på ett bibliotek. Biblioteksdatabasen har en tabell med namnet Check Outs som innehåller ett fält med namnet Due Date, som innehåller det datum då en viss bok ska lämnas tillbaka. Du kan skapa ett formulär som visar status för ett utcheckat objekt i en kontroll genom att använda IIf funktionen i kontrollens Control Source egenskap:

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

När du öppnar formuläret i formulärvy visas OVERDUE om värdet för Due Date är mindre än dagens datum, Due today om det är lika med dagens datum och Not Yet Due i annat fall.

Obs

Om du vill använda logiska operatorer, som And eller Or i expr funktionens argument IIf , måste du omge det logiska uttrycket med funktionen Utvärdera . Se exempeltabellen nedan.

Använd 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 (=). För att 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ändning IIf i VBA-kod

Obs

Följande exempel visar hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA väljer du Info för utvecklare i listrutan bredvid Sök och skriver sedan en eller flera söktermer i sökrutan.

I det här exemplet används IIf funktionen för att utvärdera TestMe parametern för proceduren CheckIt och ordet returneras Large om värdet ä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

  1. Uttryck:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    Resultat: Om [AirportCode] är "ORD", returnera "Chicago". Annars, om [AirportCode] är "ATL", returnera "Atlanta". Annars, om [AirportCode] är "SEA", returnera "Seattle". Annars returnerar du "Other".

  2. Uttryck:

    =IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
    

    Resultat: Om [ShipDate] är tidigare än dagens datum, returnera "Shipped". Annars, om [ShipDate] är lika med dagens datum, returnera "Shipping today". Annars returnerar du "Unshipped".

  3. Uttryck:

    =IIf([PurchaseDate]<#1/1/2008#,"Old","New")
    

    Resultat: Om [PurchaseDate] är tidigare än 1/1/2008, returnera "Old". Annars returnerar du "New".

  4. 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, returnera "OK". Annars returnerar du "Out of calibration".

  5. Uttryck:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    Resultat: Om [CountryRegion] är "Canada", "USA", eller "Mexico", returnera "North America". Annars returnerar du "Other".

  6. 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, returneras "B". Annars, om [Average] är 70 eller större, returneras "C". Annars, om [Average] är 60 eller större, returneras "D". 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")).