Returnerer en af to dele afhængigt af evalueringen af et udtryk.
Du kan bruge IIf overalt, hvor du kan bruge udtryk. Bruges IIf til at afgøre, om et andet udtryk er sandt eller falsk. Hvis udtrykket er sandt, IIf returneres én værdi. Hvis det er falsk, IIf returneres en anden værdi. Du angiver de værdier, der IIf skal returneres.
Syntaks
IIf(expr, truepart, falsepart)
IIf Syntaksen 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 begge truepart og falsepart, selvom det kun returnerer én 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, expr selvom 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 skal du vise, om italiensk er det første sprog for kontakten. 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 CountryRegion den har en anden værdi.
Brug IIf i komplekse udtryk
Du kan bruge et hvilket som helst udtryk i en del af en IIf sætning. Du kan også indlejre IIf udtryk, som 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 få vist 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 for falsepart den inderste IIf funktion. Da hver indlejret IIf funktion er falsepart argumentet for den IIf funktion, der indeholder den, returneres teksten Some other language kun, hvis alle argumenterne expr i funktionerne evalueres IIf til False.
Antag f.eks., at du arbejder i et bibliotek. Biblioteksdatabasen har en tabel med navnet Check Outs , der indeholder et felt med navnet Due Date, som indeholder den dato, hvor en bestemt bog forfalder. Du kan oprette en formular, der viser status for et element, der er tjekket ud i et kontrolelement, ved hjælp af funktionen IIf i det pågældende kontrolelements Control Source egenskab:
=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 den aktuelle dato og Not Yet Due ellers.
Bemærk
Hvis du vil bruge logiske operatorer som And f.eks. eller Or i expr argumentet for IIf funktionen, skal du omslutte det logiske udtryk i funktionen Eval . Se følgende eksempeltabel.
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 foranordne 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 Language: er feltaliasset.
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). Du kan finde flere oplysninger om at arbejde med VBA ved at vælge Udviklerreference på rullelisten ud for Søg og derefter angive et eller flere ord i søgefeltet.
I dette eksempel bruges funktionen IIf til at evaluere TestMe procedurens CheckIt parameter og returnerer ordet Large , hvis beløbet 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"ATL", returneres"Atlanta". Ellers, hvis[AirportCode]er"SEA", returneres"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". Ellers returneres , hvis[ShipDate]er lig med dags dato"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", returnerer"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 større, returneres"A". Ellers returneres ,"B"hvis[Average]den er 80 eller større. Ellers returneres ,"C"hvis[Average]den er 70 eller større. Ellers returneres ,"D"hvis[Average]den er 60 eller større. Ellers returneres"F".
Bemærk
Hvis du bruger funktionen IIf til at oprette et beregnet felt i en forespørgsel, skal du erstatte lighedstegnet (=) med et feltalias og et kolon (:). F.eks. Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).