Returnerer en af to dele, afhængigt af evalueringen af en udtryk.
Du kan bruge IIf overalt, hvor du kan bruge udtryk. Du kan bruge IIf til at afgøre, om et andet udtryk er sandt eller falsk. Hvis udtrykket er sandt, returnerer IIf én værdi. Hvis den er falsk, returnerer IIf en anden. Du angiver de værdier, som IIf returnerer.
Syntaks
IIf ( udtryk , sand del , falsk del )
Syntaksen for funktionen IIf har disse argumenter:
Argument |
Beskrivelse |
udtryk |
Påkrævet. Udtryk, du vil evaluere. |
Sanddel |
Påkrævet. Værdi eller udtryk, der returneres, hvis udtryk er Sand. |
falsk del |
Påkrævet. Værdi eller udtryk, der returneres, hvis udtryk er Falsk. |
Bemærkninger
Hvis altid evaluerer både sanddel og falskdel, selvom det kun returnerer én af dem. På grund af dette bør du holde øje med uønskede bivirkninger. Hvis evaluering af falsk del f.eks. resulterer i en division med nulfejl, opstår der en fejl, selvom udtryk er Sand.
Eksempler
Bruge IIf i en formular eller rapport Antag, at du har tabellen Kunder, der indeholder et felt med navnet LandOmråde. I en formular skal du angive, om italiensk er det første sprog for kontakten. Du kan tilføje et kontrolelement og bruge IIf i egenskaben Kontrolelementkilde , således:
=IIf([LandOmråde]="Italien", "Italiensk", "Et andet sprog")
Når du åbner formularen i formularvisning, vises "Italiensk", når værdien for LandOmråde er Italien, og "Et andet sprog", når LandOmråde er en anden værdi.
Brug IIf i komplekse udtryk Du kan bruge et hvilket som helst udtryk som en del af en IIf-sætning . Du kan også "indlejre" IIf-udtryk , så du kan 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 for flere forskellige LandeOmråde-værdier og derefter få vist det relevante sprog, afhængigt af hvilken værdi der findes:
=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 for den inderste IIf-funktion . Da hver indlejret IIf-funktion er argumentet falsk del for funktionen IIf , der indeholder den, returneres teksten "Et andet sprog" kun, hvis alle udtryksargumenterne i alle IIf-funktionerne evalueres til Falsk.
Antag f.eks., at du arbejder i et bibliotek. Biblioteksdatabasen har en tabel med navnet Udtjekninger, der indeholder et felt med navnet Forfaldsdato, der indeholder den dato, hvor en bestemt bog skal afleveres. Du kan oprette en formular, der angiver status for et element, der er tjekket ud, i et kontrolelement ved hjælp af funktionen IIf i egenskaben Kontrolelementkilde for det pågældende kontrolelement, således:
=IIf([Forfaldsdato]<Dato(),"FORFALDNE",IIf([Forfaldsdato]=Dato(),"Forfalder i dag","Endnu ikke forfalden"))
Når du åbner formularen i formularvisning, vises "FORFALDen", hvis værdien af Forfaldsdato er mindre end den aktuelle dato, "Forfalder i dag", hvis den er lig med dags dato, og "Endnu ikke forfalden" ellers.
Bemærk!: Hvis du vil bruge logiske operatorer som "Og" eller "Eller" i argumentet udtryk for funktionen IIf , 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, med undtagelse af 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:
Sprog: IIf([LandOmråde]="Italien", "Italiensk", "Et andet sprog")
I dette tilfælde er "Sprog:" feltaliasset.
Du kan finde flere oplysninger om oprettelse af forespørgsler og beregnede felter i artiklen Opret en simpel udvælgelsesforespørgsel.
Brug IIf i VBA-kode
Bemærk!: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.
I dette eksempel bruges funktionen IIf til at evaluere TestMe-parameteren i CheckIt-proceduren og returnerer ordet "Stor", hvis mængden er større end 1000. Ellers returneres ordet "Lille".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Flere eksempler
Udtryk |
Resultater |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other"))) |
Hvis [AirportCode] er "ORD", skal du returnere "Chicago". Ellers returneres "Atlanta", hvis [AirportCode] er "ATL". Ellers returneres "Seattle", hvis [AirportCode] er "SEA". Ellers returneres "Andet". |
=IIf([Forsendelsesdato]<Dato(),"Leveret",IIf([Forsendelsesdato]=Dato(),"Levering i dag","Ikke leveret")) |
Hvis [Forsendelsesdato] er før dags dato, returneres "Leveret". Ellers returneres "Levering i dag", hvis [Forsendelsesdato] er lig med dags dato. Ellers skal du returnere "Ikke-afskibet". |
=IIf([Købsdato]<#01-01-2008#,"Gammel","Ny") |
Hvis [Købsdato] er før 01-01-2008, returneres "Gammel". Ellers returneres "Ny". |
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0,25 And 0,3),"OK","Out of calibration") |
Hvis [Volt] er mellem 12 og 15, og [Ampere] er mellem 0,25 og 0,3, returneres "OK". Ellers returneres "Ikke til kalibrering". |
=IIf(Eval([LandOmråde] In ("Canada","USA","Mexico")),"Nordamerika","Andet") |
Hvis [LandOmråde] er "Canada", "USA" eller "Mexico", returneres "Nordamerika". Ellers returneres "Andet". |
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F")))) |
Hvis [Gennemsnit] er 90 eller større, returneres "A". Ellers returneres "B", hvis [Gennemsnit] er 80 eller større. Ellers returneres "C", hvis [Gennemsnit] er 70 eller større. Ellers returneres "D", hvis [Gennemsnit] 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 (:). Status : IIf([Forsendelsesdato]<Dato(),"Leveret",IIf([Forsendelsesdato]=Dato(),"Levering i dag","Ikke leveret"))