Daje jedan od dva dela, u zavisnosti od procene izraza.
Možete da koristite IIf bilo gde gde možete da koristite izraze. Koristite IIf da biste utvrdili da li je drugi izraz tačan ili netačan. Ako je izraz tačan, IIf daje jednu vrednost. Ako ima vrednost "false", IIf daje drugu vrednost. Vi navodite vrednosti koje IIf se vraćaju.
Sintaksa
IIf(expr, truepart, falsepart)
Sintaksa IIf funkcije ima sledeće argumente:
| Argument | Opis |
|---|---|
expr |
Obavezno. Izraz koji želite da proverite. |
truepart |
Obavezno. Vraćena vrednost ili izraz ako expr je True. |
falsepart |
Obavezno. Vraćena vrednost ili izraz ako expr je False. |
Napomene
IIf Uvek proverava oba truepart i falsepart, iako vraća samo jedan od njih. Zbog ovakvog ponašanja pazite na neželjene sporedne efekte. Na primer, ako je rezultat izračunavanja falsepart greška deljenja po nuli, greška će se pojaviti čak i ako expr je .True
Primeri
Upotreba IIf u obrascu ili izveštaju
Pretpostavimo da imate tabelu Customers koja sadrži polje pod imenom CountryRegion. U obrascu želite da prikažete da li je italijanski prvi jezik kontakta. Možete dodati kontrolu i koristiti IIf je u njenom Control Source svojstvu:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Kada otvorite obrazac u prikazu obrasca, kontrola se prikazuje Italian kad god je Italyvrednost za CountryRegion . Prikazuje Some other language se uvek kada CountryRegion ima bilo koju drugu vrednost.
Korišćenje IIf u složenim izrazima
Možete da koristite bilo koji izraz u bilo kom delu izjave IIf . Možete i da ugnezdite IIf izraze, što vam omogućava da procenite grupu zavisnih izraza. Da biste nastavili sa prethodnim primerom, možda bi trebalo da testirate nekoliko različitih CountryRegion vrednosti, a zatim da prikažete odgovarajući jezik na osnovu vrednosti:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Tekst Some other language je falsepart argument najdublje IIf funkcije. Pošto je svaka ugnežđena IIf funkcija argument falsepart funkcije IIf koja je sadrži, tekst Some other language se vraća samo ako svi expr argumenti IIf funkcija daju .False
U drugom primeru pretpostavimo da radite u biblioteci. Baza podataka biblioteke sadrži imenovanu tabelu Check Outs koja sadrži polje pod imenom Due Date, koje sadrži datum kada određena knjiga treba da bude vraćena. Možete da napravite obrazac koji prikazuje status odjavljene stavke u kontroli pomoću IIf funkcije u svojstvu te kontrole Control Source :
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Kada otvorite obrazac u prikazu obrasca, kontrola prikazuje OVERDUE ako je vrednost Due Date manja od trenutnog datuma, Due today ako je jednaka trenutnom datumu i Not Yet Due ako to nije slučaj.
Napomena
Da biste koristili logičke operatore kao što su And argumenti funkcije ili Or u expr njemu IIf , logički izraz morate da navedete u funkciju Eval . Pogledajte primer tabele koji sledi.
Korišćenje IIf u upitu
Ova IIf funkcija 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, otkucajte sledeće u redu " Polje " koordinatne mreže za dizajn upita:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
U ovom slučaju, Language: to je pseudonim polja.
Dodatne informacije o izradi upita i izračunatih polja potražite u članku " Pravljenje jednostavnog upita za izdvajanje".
Korišćenje IIf u VBA kodu
Napomena
Sledeći primeri pokazuju kako se ova funkcija koristi u Visual Basic for Applications (VBA) modulu. Za više informacija o radu sa VBA modulom izaberite stavku "Referenca razvojnog programera " sa padajuće liste pored stavke "Pretraga", a zatim unesite termine u polje za pretragu.
Ovaj primer koristi funkciju IIf za procenu TestMe parametra CheckIt procedure i vraća reč Large ako je iznos veći od 1000. U suprotnom, funkcija daje reč Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Dodatni primeri
Izraz:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Rezultat: If
[AirportCode]is"ORD", return"Chicago". U suprotnom, ako[AirportCode]jeste"ATL", vraća."Atlanta"U suprotnom, ako[AirportCode]jeste"SEA", vraća."Seattle"U suprotnom, vraća ."Other"Izraz:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Rezultat: Ako
[ShipDate]je pre današnjeg datuma, vraća"Shipped". U suprotnom, ako[ShipDate]je jednak današnjem datumu, vraća se"Shipping today". U suprotnom, vraća ."Unshipped"Izraz:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Rezultat: Ako
[PurchaseDate]je ranije od1/1/2008, return"Old". U suprotnom, vraća ."New"Izraz:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Rezultat: Ako
[Volts]je između 12 i 15 i[Amps]između 0,25 i 0,3, vraća"OK". U suprotnom, vraća ."Out of calibration"Izraz:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Rezultat: Ako
[CountryRegion]je"Canada","USA", ili"Mexico", return"North America". U suprotnom, vraća ."Other"Izraz:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Rezultat: Ako
[Average]je 90 ili veće, vraća"A". U suprotnom, ako[Average]je 80 ili veće, vraća ."B"U suprotnom, ako[Average]je 70 ili veće, vraća se"C". U suprotnom, ako[Average]je 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([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).