Vraća jedan od dva dela, u zavisnosti od rezultata provere izraz.
Funkciju IIf možete da koristite na svim mestima na kojima možete da koristite izraze. Funkciju IIf koristite kako biste utvrdili da li je drugi izraz tačan ili netačan. Ako je izraz tačan, funkcija IIf vraća jednu vrednost; ako je netačan, funkcija IIfvraća drugu. Vrednosti koje će funkcija IIf vraćati navodite sami.
Sintaksa
IIf ( izraz , tačnideo , netačnideo )
Sintaksa funkcije IIf ima sledeće argumente:
Argument |
Opis |
expr |
Obavezno. Izraz koji želite da proverite. |
tačandeo |
Obavezno. Vraćena vrednost ili izraz ako izraz ima vrednost True. |
netačnideo |
Obavezno. Vraćena vrednost ili izraz ako izraz ima vrednost False. |
Primedbe
Funkcija IIf uvek proverava i tačandeo i netačandeo, iako vraća samo jedan od njih. Zbog toga treba da pazite na neželjene sporedne efekte. Na primer, ako je kad se proverava netačandeo rezultat greška deljenja sa nulom, greška će se pojaviti čak i ako izraz ima vrednost Tačno.
Primeri
Korišćenje funkcije IIf u obrascu ili izveštaju Pretpostavimo da imate tabelu "Klijenti" koja sadrži polje pod imenom "ZemljaRegion". U obrascu želite da utvrdite da li je italijanski jezik prvi jezik kontakta. Možete da dodate kontrolu i da koristite funkciju IIf u svojstvu Izvor kontrole, ovako:
=IIf([DržavaRegion]=“Italija“, “Italijanski“, “Neki drugi jezik“)
Kada taj obrazac otvorite u prikazu obrasca, kontrola prikazuje „Italijanski“ kad god je vrednost u polju DržavaRegion jednaka „Italija“, a „Neki drugi jezik“ kad god u polju DržavaRegion stoji neka druga vrednost.
Korišćenje funkcije IIf u složenim izrazima Bilo koji izraz možete da koristite kao bilo koji deo IIf izjave . Možete i da "ugnezdite" IIf izraze što vam omogućava da procenite niz zavisnih izraza. Da biste nastavili sa prethodnom primerom, možda ćete želeti da testirate nekoliko različitih vrednosti "ZemljaRegion", a zatim prikažete odgovarajući jezik u zavisnosti od toga koja vrednost postoji:
=IIf([DržavaRegion]="Italija", "Italijanski", IIf([DržavaRegion]="Francuska", "Francuski", IIf([DržavaRegion]="Nemačka", "Nemački", "Neki drugi jezik")))
Tekst „Neki drugi jezik“ je argument netačandeo najdublje funkcije IIf. Pošto je svaka ugnežđena funkcija IIf argument netačandeo funkcije IIf koja se sadrži, tekst „Neki drugi jezik“ se vraća samo ako svi argumenti izraz svih funkcijaIIf prilikom proveravanja daju vrednost „Netačno“.
U drugom primeru pretpostavimo da radite u biblioteci. Baza podataka biblioteke sadrži tabelu po imenu „Odjave“ koja sadrži polje „Krajnji rok“ sa datumom kada određena knjiga treba da bude vraćena. Možete da napravite obrazac koji ukazuje na status odjavljene stavke u kontroli korišćenjem funkcije IIf u svojstvu Izvor kontrole te kontrole, na ovaj način:
=IIf([Krajnji rok]<Date(),"PREKORAČEN ROK",IIf([Krajnji rok]=Date(),"Rok je danas","Još nije rok"))
Kad otvorite obrazac u prikazu obrasca, kontrola prikazuje „PREKORAČEN ROK“ ako je vrednost „Krajnji rok“ manja od trenutnog datuma, „Rok je danas“ ako je jednaka i „Još nije rok“ ako je veća.
Napomena: Da biste koristili logičke operatore kao što su "And" ili "Ili" u argumentu izraz funkcije IIf, morate da stavite logički izraz u funkciju Eval. Pogledajte primer tabele koja sledi.
Korišćenje funkcije IIf u upitu
Funkcija IIf se često koristi za izradu izračunatih polja u upitima. Sintaksa je ista, osim što u upitu ispred polja morate da navedete pseudonim polja i dve tačke (:) umesto znaka jednakosti (=). Da biste upotrebili prethodni primer, upisali biste sledeće u red Polje koordinatne mreže za dizajn upita:
Jezik: IIf([DržavaRegija]="Italija", "Italijanski", "Neki drugi jezik")
U ovom slučaju, „Jezik:“ je pseudonim polja.
Više informacija o kreiranju upita i izračunatih polja potražite u članku Kreiranje jednostavnog upita za izdvajanje.
Korišćenje funkcije IIf u VBA kodu
Napomena: Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu. Ako vam je potrebno više informacija o radu sa VBA modulom, izaberite stavku Referenca razvojnog programera sa padajuće liste pored stavke Pretraga i unesite termine u polje za pretragu.
U ovom primeru funkcija IIf se koristi za proveravanje parametra TestirajMe procedure Proverii vraća reč „Veliko“ ako je iznos veći od 1000. U suprotnom vraća reč „Malo“.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Dodatni primeri
Izraz |
Rezultati |
=IIf([KodAerodroma]="ORD","Čikago",IIf([KodAerodroma]="ATL","Atlanta",IIf([KodAerodroma]="SEA","Sijetl","Drugo"))) |
Ako je [KodAerodroma] jednak „ORD“, vraća „Čikago“. U suprotnom, ako je [KodAerodroma] jednak „ATL“, vraća „Atlanta“. U suprotnom, ako je [KodAerodroma] jednak „SEA“, vraća „Sijetl“. U suprotnom vraća „Drugo“. |
=IIf([DatumIsporuke]<Date(),"Isporučeno",IIf([DatumIsporuke]=Date(),"Isporučeno danas","Nije isporučeno")) |
Ako je [DatumIsporuke] pre današnjeg datuma, vraća „Isporučeno“. U suprotnom, ako je [DatumIsporuke] jednak današnjem datumu, vraća „Isporučeno danas“. U suprotnom vraća „Nije isporučeno“. |
=IIf([DatumKupovine]<#01.01.2008#,"Staro","Novo") |
Ako je [Datum Kupovine] pre 1.1.2008., vraća "Staro". U suprotnom vraća "Novo". |
=IIf(Eval([Volti] Between 12 And 15 And [Amperi] Between 0,25 And 0,3),"U redu","Nije kalibrisano") |
Ako je [Volti] između 12 i 15 a [Amperi] između 0.25 i 0.3, vraća „U redu“. U suprotnom vraća „Nije kalibrisano“. |
=IIf(Eval([DržavaRegion] In ("Kanada","SAD","Meksiko")),"Severna Amerika","Drugo") |
Ako je [DržavaRegion] jednako „Kanada“, „SAD“ ili „Meksiko“, vraća „Severna Amerika“. U suprotnom vraća „Drugo“. |
=IIf([Prosek]>=90,"A",IIf([Prosek]>=80,"B",IIf([Prosek]>=70,"C",IIf([Prosek]>=60,"D","F")))) |
Ako je [Prosek] jednak 90 ili više, vraća „A“. U suprotnom, ako je [Prosek] jednako 80 ili veće, vraća „B“. U suprotnom, ako je [Prosek] jednako 70 ili veće, vraća „C“. U suprotnom, ako je [Prosek] jednako 60 ili veće, vraća „D“. U suprotnom vraća „F“. |
Napomena: Ako funkciju IIf koristite za izradu izračunatog polja u upitu, zamenite znak jednakosti (=) sa pseudonimom polja i dve tačke (:). Na primer, Status: IIf([DatumIsporuke]<Date(),"Isporučeno",IIf([DatumIsporuke]=Date(),"Isporučeno danas","Nije isporučeno"))