Returnerer en af to dele afhængigt af evalueringen af et udtryk.
Du kan bruge alle de steder, hvor du kan bruge IIf udtryk. Bruges IIf til at afgøre, om et andet udtryk er sandt eller falsk. Hvis udtrykket er sandt, IIf returneres en værdi. Hvis den er falsk, IIf returneres en anden værdi. Du angiver de værdier, der IIf returneres.
Syntaks
IIf(expr, truepart, falsepart)
Syntaksen IIf for funktionen har disse argumenter:
| Argument | Beskrivelse |
|---|---|
expr |
Påkrævet. Udtryk, du vil evaluere. |
truepart |
Påkrævet. Værdi eller udtryk, der returneres, hvis expr er True. |
falsepart |
Påkrævet. Værdi eller udtryk, der returneres, hvis expr er False. |
Bemærkninger
IIf evaluerer altid både truepart og falsepart, selvom den kun returnerer en af dem. På grund af denne adfærd skal du holde øje med uønskede bivirkninger. Hvis evaluering falsepart f.eks. resulterer i en division med nul-fejl, opstår der en fejl, selvom expr er True.
Eksempler
Brug IIf i en formular eller rapport
Antag, at du har en Customers tabel, der indeholder et felt med navnet CountryRegion. I en formular vil du vise, om italiensk er kontaktens modersmål. Du kan tilføje et kontrolelement og bruge IIf det i dets Control Source egenskab:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Når du åbner formularen i formularvisning, vises Italian kontrolelementet, når værdien for CountryRegion er Italy. Den vises Some other language , når den CountryRegion har en anden værdi.
Brug IIf i komplekse udtryk
Du kan bruge et hvilket som helst udtryk i en vilkårlig del af en IIf sætning. Du kan også indlejre IIf udtryk, hvilket gør det muligt at evaluere en række afhængige udtryk. Hvis du vil fortsætte med det foregående eksempel, kan det være en god ide at teste flere forskellige CountryRegion værdier og derefter vise det relevante sprog baseret på værdien:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Teksten Some other language er argumentet falsepart for den inderste IIf funktion. Da hver indlejret IIf funktion er argumentet falsepart for den IIf funktion, der indeholder den, returneres teksten Some other language kun, hvis alle argumenterne expr i funktionerne IIf evalueres til False.
For et andet eksempel kan vi sige, at du arbejder på et bibliotek. Biblioteksdatabasen har et navn Check Outs på en tabel, der indeholder et felt med navnet Due Date, som indeholder den dato, hvor en bestemt bog skal tilbagesendes. Du kan oprette en formular, der viser status for et element, der er tjekket ud i et kontrolelement, ved hjælp IIf af funktionen i egenskaben Control Source for det pågældende kontrolelement:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Når du åbner formularen i formularvisning, vises OVERDUE kontrolelementet, hvis værdien af Due Date er mindre end dags dato, Due today hvis den er lig med dags dato og Not Yet Due ellers.
Bemærk
Hvis du vil bruge logiske operatorer som f.eks And . eller Or i funktionens expr argument IIf , skal du sætte det logiske udtryk i funktionen Eval . Se eksempeltabellen nedenfor.
Brug IIf i en forespørgsel
Funktionen IIf bruges ofte til at oprette beregnede felter i forespørgsler. Syntaksen er den samme, bortset fra at du i en forespørgsel skal indlede udtrykket med et feltalias og et kolon (:) i stedet for et lighedstegn (=). Hvis du vil bruge det foregående eksempel, skal du skrive følgende i rækken Felt i forespørgselsdesigngitteret:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
I dette tilfælde er feltaliasset. Language:
Du kan finde flere oplysninger om oprettelse af forespørgsler og beregnede felter under Opret en simpel udvælgelsesforespørgsel.
Brug IIf i VBA-kode
Bemærk
Følgende eksempler viser, hvordan du bruger denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og derefter skrive ét eller flere ord i søgefeltet.
I dette eksempel bruges IIf funktionen til at evaluere procedurens TestMe parameter CheckIt og returnerer ordet Large , hvis mængden er større end 1000. Ellers returneres ordet Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Flere eksempler
Udtryk:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Resultat: Hvis
[AirportCode]er"ORD", returneres"Chicago". Ellers, hvis[AirportCode]er, returneres"ATL""Atlanta". Ellers, hvis[AirportCode]er, returneres"SEA""Seattle". Ellers returneres"Other".Udtryk:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Resultat: Hvis
[ShipDate]er tidligere end dags dato, returneres"Shipped". Hvis er lig med dags dato,[ShipDate]returneres"Shipping today". Ellers returneres"Unshipped".Udtryk:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Resultat: Hvis
[PurchaseDate]er tidligere end1/1/2008, returneres"Old". Ellers returneres"New".Udtryk:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Resultat: Hvis
[Volts]er mellem 12 og 15 og[Amps]er mellem 0,25 og 0,3, returneres"OK". Ellers returneres"Out of calibration".Udtryk:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Resultat: Hvis
[CountryRegion]er"Canada","USA", eller"Mexico", returneres"North America". Ellers returneres"Other".Udtryk:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Resultat: Hvis
[Average]er 90 eller derover, returneres"A". Ellers, hvis[Average]er 80 eller derover, returneres"B". Ellers, hvis[Average]er 70 eller højere, returneres"C". Ellers, hvis[Average]er 60 eller derover, returneres"D". Ellers returneres"F".
Bemærk
Hvis du bruger IIf funktionen til at oprette et beregnet felt i en forespørgsel, skal du erstatte lighedstegnet (=) med et feltalias og et kolon (:). For eksempel Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).