Returnerer én av to deler, avhengig av evalueringen av en uttrykk.
Du kan bruke IIf hvor som helst du kan bruke uttrykk. Du bruker IIf til å avgjøre om et annet uttrykk er sant eller usant. Hvis uttrykket er sant, returnerer IIf én verdi. hvis den er usann, returnerer IIf en annen. Du angir verdiene IIf returnerer.
Syntaks
IIf ( uttrykk , sann del , usann del )
Syntaksen for funksjonen IIf har følgende argumenter:
Argument |
Beskrivelse |
uttr |
Obligatorisk. Uttrykk du vil evaluere. |
sann del |
Obligatorisk. Verdi eller uttrykk som returneres hvis uttr er Sann. |
usann del |
Obligatorisk. Verdi eller uttrykk som returneres hvis uttr er Usann. |
Kommentarer
IIf evaluerer alltid både truepart og falsepart, selv om den bare returnerer én av dem. På grunn av dette bør du se etter uønskede bivirkninger. Hvis evaluering av usanndel for eksempel resulterer i en deling med null feil, oppstår en feil selv om uttr er Sann.
Eksempler
Bruke IIf i et skjema eller en rapport La oss si at du har en kundetabell som inneholder et felt kalt LandRegion. I et skjema vil du angi om italiensk er det første språket til kontakten. Du kan legge til en kontroll og bruke IIf i kontrollkildeegenskapen , slik som dette:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Når du åpner skjemaet i skjemavisning, viser kontrollen «Italiensk» når verdien for LandRegion er Italia, og «Et annet språk» når LandRegion er en annen verdi.
Bruke IIf i komplekse uttrykk Du kan bruke et hvilket som helst uttrykk som en hvilken som helst del av en IIf-setning . Du kan også «neste» IIf-uttrykk , slik at du kan evaluere en rekke avhengige uttrykk. Hvis du vil fortsette med det forrige eksemplet, kan det hende du vil teste for flere forskjellige LandRegion-verdier, og deretter vise det aktuelle språket avhengig av hvilken verdi som finnes:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Teksten «Et annet språk» er argumentet falsepart i den innerste IIf-funksjonen . Siden hver nestede IIf-funksjon er argumentet falsepart i IIf-funksjonen som inneholder den, returneres teksten «Et annet språk» bare hvis alle uttrykksargumentene for alle IIf-funksjonene evalueres til Usann.
Anta for eksempel at du arbeider i et bibliotek. Bibliotekdatabasen har en tabell kalt Utsjekkinger som inneholder et felt, kalt Forfallsdato, som inneholder datoen en bestemt bok forfaller. Du kan opprette et skjema som angir statusen for et utsjekket element i en kontroll ved hjelp av IIf-funksjonen i kontrollens kontrollkildeegenskap , slik som dette:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Når du åpner skjemaet i skjemavisning, viser kontrollen «FORFALT» hvis verdien for forfallsdatoen er mindre enn gjeldende dato, «Forfaller i dag» hvis den er lik gjeldende dato, ellers «Ikke forfallsdato».
Obs!: Hvis du vil bruke logiske operatorer som And eller Or i uttr-argumentet i IIf-funksjonen , må du omslutte det logiske uttrykket i Eval-funksjonen . Se eksempeltabellen nedenfor.
Bruke IIf i en spørring
IIf-funksjonen brukes ofte til å opprette beregnede felt i spørringer. Syntaksen er den samme, med unntak av at du i en spørring må begynne 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:
Språk: IIf([CountryRegion]="Italy", "Italian", "Some other language")
I dette tilfellet er «Språk:» feltaliaset.
Hvis du vil ha mer informasjon om hvordan du oppretter spørringer og beregnede felt, kan du se artikkelen Opprette en enkel utvalgsspørring.
Bruke IIf i VBA-kode
Obs!: I eksemplene nedenfor vises bruken av 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 fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.
Dette eksemplet bruker IIf-funksjonen til å evaluere TestMe-parameteren i CheckIt-prosedyren og returnerer ordet «Large» hvis beløpet er større enn 1000. Ellers returneres ordet «Liten».
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Flere eksempler
Expression |
Resultater |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other"))) |
Hvis [AirportCode] er «ORD», returnerer du «Chicago». Ellers, hvis [AirportCode] er "ATL", returner "Atlanta". Ellers, hvis [AirportCode] er «SEA», returner «Seattle». Ellers returnerer du «Annet». |
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")) |
Hvis [ShipDate] er før dagens dato, returner «Sendt». Ellers, hvis [ShipDate] er lik dagens dato, returner «Forsendelse i dag». Ellers returnerer du «Unshipped». |
=IIf([PurchaseDate]<#01.01.2008#,"Gammel";"Ny") |
Hvis [PurchaseDate] er før 01.01.2008, returnerer du «Gammel». Ellers returnerer du «Ny». |
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration") |
Hvis [Volts] er mellom 12 og 15 og [Amps] er mellom 0,25 og 0,3, returner «OK». Ellers returnerer du «Ut av kalibrering». |
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"Nord-Amerika","Other") |
Hvis [CountryRegion] er "Canada", "USA" eller "Mexico", returner "Nord-Amerika". Ellers returnerer du «Annet». |
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F")))) |
Hvis [Gjennomsnitt] er 90 eller større, returnerer du «A». Ellers, hvis [Gjennomsnitt] er 80 eller større, returner "B". Ellers, hvis [Gjennomsnitt] er 70 eller større, returner "C". Ellers, hvis [Gjennomsnitt] er 60 eller større, returner "D". Ellers returnerer du «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 (:). For eksempel Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))