Returnerer en eller to deler, avhengig av evalueringen av et uttrykk.
Du kan bruke IIf hvor som helst hvor 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 returnerer.
Syntaks
IIf(expr, truepart, falsepart)
Syntaksen IIf for har disse argumentene:
| Argument | Beskrivelse |
|---|---|
expr |
Obligatorisk. Uttrykket du vil evaluere. |
truepart |
Obligatorisk. Verdi eller uttrykk som returneres hvis expr er True. |
falsepart |
Obligatorisk. Verdi eller uttrykk som returneres hvis expr er False. |
Merknader
IIfevaluerer alltid både og falsepart, selv om den bare returnerer én truepart av dem. På grunn av denne virkemåten bør du se etter uønskede bivirkninger. Hvis evaluering falsepart for eksempel resulterer i en divisjon-med-null-feil, oppstår det en feil selv om expr er True.
Eksempler
Bruk IIf i et skjema eller en rapport
Tenk deg at du har en Customers tabell som inneholder et felt med navnet CountryRegion. I et skjema vil du vise om italiensk er førstespråket til kontakten. Du kan legge til en kontroll og bruke IIf 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 som CountryRegion helst har en annen verdi.
Bruk IIf i komplekse uttrykk
Du kan bruke et hvilket som helst uttrykk i enhver del av en IIf setning. Du kan også neste IIf uttrykk, noe som lar deg evaluere en rekke avhengige uttrykk. Hvis du vil fortsette med det foregående eksemplet, kan du 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 falsepart til den innerste IIf funksjonen. Siden hver nestede IIf funksjon er argumentet falsepart for IIf funksjonen som inneholder den, returneres teksten Some other language bare hvis alle argumentene expr for IIf funksjonene evalueres til False.
Anta i et annet eksempel at du arbeider på et bibliotek. Bibliotekdatabasen har en tabell som Check Outs inneholder et felt kalt Due Date, som inneholder datoen da en bestemt bok forfaller tilbake. Du kan opprette et skjema som viser statusen for et utsjekket element i en kontroll, ved hjelp IIf av funksjonen i egenskapen til kontrollen Control Source :
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Når du åpner skjemaet i skjemavisning, viser OVERDUE kontrollen om verdien er Due Date 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 argumentet IIfexpr til funksjonen, må du omslutte det logiske uttrykket med Evaluering-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å begynne uttrykket med et feltalias og et kolon (:) i stedet for et likhetstegn (=). Hvis du vil bruke eksemplet ovenfor, skriver du inn følgende i Felt-raden 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 VBA-modul (Visual Basic for Applications). 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 søkeord i søkeboksen.
Dette eksemplet bruker IIf funksjonen til å evaluere parameteren TestMe til prosedyren CheckIt , 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". Hvis ikke, hvis[AirportCode]er"ATL", returner"Atlanta". Hvis ikke, hvis[AirportCode]er"SEA", returner"Seattle". Hvis ikke returnerer"Other"du .Uttrykk:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Resultat: Hvis
[ShipDate]det er før dagens dato, returneres"Shipped". Hvis ikke er lik dagens dato,[ShipDate]returneres"Shipping today". Hvis ikke returnerer"Unshipped"du .Uttrykk:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Resultat: Hvis
[PurchaseDate]er tidligere enn1/1/2008, returner"Old". Hvis ikke returnerer"New"du .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, returneres"OK". Hvis ikke returnerer"Out of calibration"du .Uttrykk:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Resultat: Hvis
[CountryRegion]er"Canada","USA", eller"Mexico", returner"North America". Hvis ikke returnerer"Other"du .Uttrykk:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Resultat: Hvis
[Average]er 90 eller høyere, ENTER"A". Hvis ikke, hvis[Average]er 80 eller høyere, returnerer"B". Hvis ikke, hvis[Average]er 70 eller høyere, returnerer"C". Hvis ikke, hvis[Average]er 60 eller høyere, returnerer"D". Hvis ikke returnerer"F"du .
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")).