Returnerer en eller to deler, avhengig av evalueringen av et uttrykk.
Du kan bruke IIf hvor som helst som du kan bruke uttrykk. Brukes IIf til å avgjøre om et annet uttrykk er sant eller usant. Hvis uttrykket er sant, IIf returneres én verdi. Hvis den er usann, IIf returneres en annen verdi. Du angir verdiene som IIf returneres.
Syntaks
IIf(expr, truepart, falsepart)
Funksjonssyntaksen IIf har følgende argumenter:
| Argument | Beskrivelse |
|---|---|
expr |
Obligatorisk. Uttrykk som du vil evaluere. |
truepart |
Obligatorisk. Verdi eller uttrykk som returneres hvis expr det er True. |
falsepart |
Obligatorisk. Verdi eller uttrykk som returneres hvis expr det er False. |
Merknader
IIf evaluerer alltid begge truepart og falsepart, selv om den bare returnerer én av dem. På grunn av denne virkemåten må du se etter uønskede bivirkninger. Hvis evaluering for eksempel resulterer falsepart i en divisjon-ved-null-feil, oppstår en feil selv om expr det er True.
Eksempler
Bruk IIf i et skjema eller en rapport
La oss si at du har en Customers tabell som inneholder et felt med navnet CountryRegion. I et skjema vil du vise om italiensk er det første språket til kontakten. Du kan legge til en kontroll og bruke IIf den i egenskapen Control Source :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Når du åpner skjemaet i skjemavisning, vises Italian kontrollen når verdien for CountryRegion er Italy. Den vises Some other language når CountryRegion den har en annen verdi.
Bruk IIf i komplekse uttrykk
Du kan bruke et hvilket som helst uttrykk i hvilken som helst del av en IIf setning. Du kan også neste IIf uttrykk, som lar deg evaluere en rekke avhengige uttrykk. Hvis du vil fortsette med det forrige eksemplet, kan det hende du vil teste flere forskjellige CountryRegion verdier og deretter vise riktig språk basert på verdien:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Teksten Some other language er argumentet for falsepart den innerste IIf funksjonen. Siden hver nestede IIf funksjon er falsepart argumentet for funksjonen som inneholder den IIf , returneres teksten Some other language bare hvis alle argumentene expr i IIf funksjonene evalueres til False.
Anta for eksempel at du arbeider i et bibliotek. Bibliotekdatabasen har en tabell med navnet Check Outs inneholder et felt kalt Due Date, som inneholder datoen da en bestemt bok forfaller. Du kan opprette et skjema som viser statusen for et utsjekket element i en kontroll ved hjelp IIf av funksjonen i kontrollens Control Source egenskap:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Når du åpner skjemaet i skjemavisning, vises OVERDUE kontrollen hvis verdien Due Date er mindre enn gjeldende dato, Due today hvis den er lik gjeldende dato, og Not Yet Due ellers.
Obs!
Hvis du vil bruke logiske operatorer, for eksempel And eller Or i expr argumentet IIf for funksjonen, må du omslutte det logiske uttrykket i Eval-funksjonen . Se eksempeltabellen nedenfor.
Bruk IIf i en spørring
Funksjonen IIf brukes ofte til å opprette beregnede felt i spørringer. Syntaksen er den samme, bortsett fra at du i en spørring må innlede uttrykket med et feltalias og et kolon (:) i stedet for et likhetstegn (=). Hvis du vil bruke det foregående eksemplet, skriver du inn følgende i feltraden i utformingsrutenettet for spørringen:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
I dette tilfellet Language: er feltaliaset.
Hvis du vil ha mer informasjon om hvordan du oppretter spørringer og beregnede felt, kan du se Opprette en enkel utvalgsspørring.
Bruk IIf i VBA-kode
Obs!
Eksemplene nedenfor viser hvordan du bruker denne funksjonen i en Visual Basic for Applications (VBA)-modul. Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse i rullegardinlisten ved siden av Søk, og deretter skriver du inn ett eller flere termer i søkeboksen.
Dette eksemplet bruker IIf funksjonen til å evaluere parameteren TestMeCheckIt for prosedyren og returnerer ordet Large hvis beløpet er større enn 1000. Ellers returneres ordet Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Flere eksempler
Uttrykk:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Resultat: Hvis
[AirportCode]er"ORD", returner"Chicago". Ellers, hvis[AirportCode]er"ATL", returner"Atlanta". Ellers, hvis[AirportCode]er"SEA", returner"Seattle". Hvis ikke, returner"Other".Uttrykk:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Resultat: Hvis
[ShipDate]er tidligere enn dagens dato, returner"Shipped". Ellers, hvis[ShipDate]er lik dagens dato, returner"Shipping today". Hvis ikke, returner"Unshipped".Uttrykk:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Resultat: Hvis
[PurchaseDate]er tidligere enn1/1/2008, returner"Old". Hvis ikke, returner"New".Uttrykk:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Resultat: Hvis
[Volts]er mellom 12 og 15 og[Amps]er mellom 0,25 og 0,3, returner"OK". Hvis ikke, returner"Out of calibration".Uttrykk:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Resultat: Hvis
[CountryRegion]er"Canada","USA"eller"Mexico", returner"North America". Hvis ikke, returner"Other".Uttrykk:
=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, returner"A". Hvis ikke, hvis[Average]er 80 eller større, returner"B". Hvis ikke, hvis[Average]er 70 eller større, returner"C". Hvis ikke, hvis[Average]er 60 eller større, returner"D". Hvis ikke, returner"F".
Obs!
Hvis du bruker IIf funksjonen til å opprette et beregnet felt i en spørring, erstatter du likhetstegnet (=) med et feltalias og et kolon (:). Eksempel: Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).