Funktionen IIf

Returnerer én af to dele afhængigt af evalueringen af et udtryk.

Du kan bruge IIf over alt, hvor du kan bruge udtryk. Du bruger IIf til at afgøre, om et andet udtryk er sandt eller falsk. Hvis udtrykket er sandt, returnerer IIf en værdi. Hvis det er falsk, returnerer IIf en anden værdi. Du angiver de værdier, IIf returner.

Se eksempler

Syntaks

IIf(udtryk, sanddel, falskdel)

Syntaksen for funktionen IIf består af følgende argument:

Argument

Beskrivelse

udtr

Påkrævet. Udtryk, som du vil evaluere.

sanddel

Påkrævet. Værdi eller udtryk, der returneres, hvis udtryk er Sand.

falskdel

Påkrævet. Værdi eller udtryk, der returneres, hvis udtryk er Falsk.


Bemærkninger

IIf evaluerer altid både sanddel og falskdel, selvom funktionen kun returnerer én af dem. Derfor bør du være opmærksom på uønskede bivirkninger. Hvis evalueringen af falskdel f.eks. resulterer i division med nul fejl, opstår der en fejl, selvom udtryk er Sand.

Eksempler

Brug af IIf i en formular eller rapport    Du har f.eks. en kundetabel, der indeholder feltet Land. I en formular vil du angive, om kontaktpersonens første sprog er italiensk. Du kan tilføje et kontrolelement og bruge IIf i egenskaben Kontrolkilde som i følgende eksempel:

=IIf([CountryRegion]="Italien", "Italiensk", "Et andet sprog")

Når du åbner formularen i formularvisning, viser kontrolelementet "Italiensk", når værdien for Land er Italien, og "Et andet sprog", når værdien for Land er en anden værdi.

Brug af IIf i komplekse udtryk    Du kan bruge ethvert udtryk som enhver del af en IIf-sætning. Du kan også "indlejre" IIf-udtryk, så du kan evaluere en række udtryk, der er afhængige af hinanden. Hvis du vil fortsætte med det tidligere eksempel, kan du teste forskellige værdier for LandOmråde og derefter vise det relevante sprog, afhængigt af de eksisterende værdier:

=IIf([LandOmråde]="Italien", "Italiensk", IIf([LandOmråde]="Frankrig", "Fransk", IIf([LandOmråde]="Tyskland", "Tysk", "Et andet sprog")))

Teksten "Et andet sprog" er argumentet falsk del i den inderste IIf-funktion. Da hver af de indlejrede IIf-funktioner er argumentet falsk del af den IIf-funktion, som indeholder argumentet, returneres teksten "Et andet sprog" kun, hvis alle udtryk-argumenterne i alle IIf-funktionerne evalueres til falsk.

Et andet eksempel kan være, at du arbejder på et bibliotek. Biblioteksdatabasen har en tabel med navnet Udlån, der indeholder feltet Afleveringsdato, som indeholder afleveringsdatoen for hver bog. Du kan oprette en formular, der angiver status for et udlånt element i en kontrolelement ved at indsætte funktionen IIf i egenskaben Kontrolkilde for kontrolelementet som i følgende eksempel:

=IIf([Afleveringsdato]<Date(),"FOR SENT",IIf([Afleveringsdato]=Date(),"Skal afleveres i dag","Afleveres senere"))

Når du åbner formularen i formularvisning, viser teksten "FOR SENT", hvis værdien af Forfaldsdato er mindre end dags dato, "Skal afleveres i dag", hvis den er lig med dags dato, og "Afleveres senere" i andre tilfælde.

Bemærk  Hvis du vil bruge logiske operatorer som "And" eller "Or" i argumentet udtryk for IIf-funktionen, skal du angive det logiske udtryk i funktionen Eval. Se eksempeltabellen herunder.

Brug af IIf i en forespørgsel    

Funktionen IIf bruges ofte til at oprette beregnede felter i forespørgsler. Syntaksen er den samme, men i en forespørgsel skal udtrykket have et foranstillet alias (SQL)-felt 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:

Sprog: IIf([LandOmråde]="Italien", "Italiensk", "Et andet sprog")

I dette tilfælde er "Sprog:" alias-feltet.

Du kan finde flere oplysninger om at oprette forespørgsler og beregnede felter i artiklen Vælge data ved hjælp af en forespørgsel.

Brug af IIf i VBA-kode    

Bemærk  I de følgende eksempler demonstreres brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Du kan få yderligere oplysninger om arbejde med VBA ved at vælge Udviklerreference på rullelisten ud for Søg og indtaste et eller flere udtryk i søgeboksen.

I dette eksempel anvendes funktionen IIf til at evaluere TestMe-parameteren for CheckIt-proceduren, og ordet "Stor" returneres, hvis summen er større end 1000. Ellers returneres ordet "Lille".

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Stor", "Lille")
End Function

Flere eksempler

Udtryk

Resultater

=IIf([Lufthavnskode]="ORD","Chicago",IIf([Lufthavnskode]="ATL","Atlanta",IIf([Lufthavnskode]="SEA","Seattle","Andet")))

Hvis [Lufthavnskode] er "ORD", returneres "Chicago". Ellers, hvis [Lufthavnskode] er "ATL", returneres "Atlanta". Ellers, hvis [Lufthavnskode] er "SEA", returneres "Seattle". Ellers returneres "Andet".

=IIf([Forsendelsesdato]<Date(),"Sendt",IIf([Forsendelsesdato]=Date(),"Sendes i dag","Ikke sendt"))

Hvis [Forsendelsesdato] er før dags dato, returneres "Sendt". Ellers, hvis [Forsendelsesdato] er lig med dags dato, returneres "Sendes i dag". Ellers returneres "Ikke sendt".

=IIf([Købsdato]<#1/1/2008#,"Gammel","Ny")

Hvis [Købsdato] er før 1/1/2008, returneres "Gammel". Ellers returneres "Ny".

=IIf(Eval([Volt] Between 12 And 15 And [Ampere] Between 0.25 And 0.3),"OK","Ikke kalibreret")

Hvis [Volt] er mellem 12 og 15, og [Ampere] er mellem 0,25 og 0,3, returneres "OK". Ellers returneres "Ikke kalibreret".

=IIf(Eval([LandOmråde] In ("Canada","USA","Mexico")),"Nordamerika","Andet")

Hvis [LandOmråde] er "Canada", "USA" eller "Mexico", returneres "Nordamerika". Ellers returneres "Andet".

=IIf([Gennemsnit]>=90,"12",IIf([Gennemsnit]>=80,"10",IIf([Gennemsnit]>=70,"8",IIf([Gennemsnit]>=60,"5","0"))))

Hvis [Gennemsnit] er 90 eller mere, returneres "12". Ellers, hvis [Gennemsnit] er 80 eller større, returneres "10". Ellers, hvis [Gennemsnit] er 70 eller større, returneres "8". Ellers, hvis [Gennemsnit] er 60 eller større, returneres "5". Ellers returneres "0".

Bemærk  Hvis du bruger funktionen IIf til at oprette et beregnet felt i en forespørgsel, skal du udskifte lighedstegnet (=) med et alias (SQL)-felt og et kolon (:). Eksempel Status: IIf([Forsendelsesdato]<Date(),"Sendt",IIf([Forsendelsesdato]=Date(),"Sendes i dag","Ikke sendt"))

Gælder: Access 2016 Developer, Access 2013, Access 2010, Access 2007, Access 2010 Developer, Access 2007 Developer, Access 2013 Developer



Var disse oplysninger nyttige?

Ja Nej

Hvordan kan vi forbedre det?

255 tegn tilbage

Inkluder ikke kontaktoplysninger i din feedback for at beskytte dine personlige oplysninger. Gennemse vores erklæring om beskyttelse af personlige oplysninger.

Tak for din feedback!

Skift sprog