Returnează una dintre două părți, în funcție de evaluarea unei expresii.
Puteți utiliza IIf oriunde puteți utiliza expresii. Se utilizează IIf pentru a determina dacă o altă expresie este adevărată sau falsă. Dacă expresia este adevărată, IIf returnează o valoare. Dacă este false, IIf returnează altă valoare. Specificați valorile returnate IIf .
Sintaxă
IIf(expr, truepart, falsepart)
IIf Sintaxa funcției are următoarele argumente:
| Argument | Descriere |
|---|---|
expr |
Obligatoriu. Expresia pe care doriți să o evaluați. |
truepart |
Obligatoriu. Valoarea sau expresia returnată dacă expr este True. |
falsepart |
Obligatoriu. Valoarea sau expresia returnată dacă expr este False. |
Observații
IIf evaluează întotdeauna atât Și truepartfalsepart, chiar dacă returnează doar unul dintre ele. Din cauza acestui comportament, fiți atenți la efectele secundare nedorite. De exemplu, dacă evaluarea falsepart are ca rezultat o eroare împărțire la zero, se produce o eroare, chiar dacă expr este True.
Exemple
Utilizarea într-un IIf formular sau raport
Să presupunem că aveți un Customers tabel care conține un câmp denumit CountryRegion. Într-un formular, doriți să indicați dacă italiana este prima limbă a contactului. Puteți să adăugați un control și să îl utilizați IIf în proprietatea sa Control Source :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Când deschideți formularul în Vizualizarea formular, controlul afișează Italian ori de câte ori valoarea pentru CountryRegion este Italy. Se afișează Some other language ori de câte ori CountryRegion are orice altă valoare.
Utilizarea IIf în expresii complexe
Puteți utiliza orice expresie în orice parte a unei IIf instrucțiuni. De asemenea, puteți imbrica IIf expresii, ceea ce vă permite să evaluați o serie de expresii dependente. Pentru a continua cu exemplul anterior, se recomandă să testați mai multe valori diferite CountryRegion și apoi să afișați limba corespunzătoare bazată pe valoare:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Textul Some other language este argumentul falsepart funcției inferioare IIf . Deoarece fiecare funcție imbricată IIf este argumentul IIffalsepart funcției care o conține, textul Some other language este returnat doar dacă toate argumentele IIfexpr funcțiilor se evaluează la False.
Alt exemplu ar fi să presupunem că lucrați la o bibliotecă. Baza de date a bibliotecii are un tabel denumit Check Outs care conține un câmp denumit Due Date, care conține data la care o anumită carte trebuie returnată. Aveți posibilitatea să creați un formular care afișează starea unui element extras dintr-un control utilizând funcția din proprietatea IIfControl Source controlului:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Când deschideți formularul în Vizualizare formular, controlul afișează OVERDUE dacă valoarea este Due Date mai mică decât data curentă, Due today dacă este egală cu data curentă și Not Yet Due altfel.
Notă
Pentru a utiliza operatori logici precum And sau Or în argumentul exprIIf funcției, trebuie să încadrați expresia logică în funcția Eval . Consultați tabelul exemplu care urmează.
Utilizarea într-o IIf interogare
Funcția IIf este utilizată adesea pentru a crea câmpuri calculate în interogări. Sintaxa este aceeași, cu excepția faptului că, într-o interogare, trebuie să prefațați expresia cu un alias de câmp și două puncte (:) în loc de semnul egal (=). Pentru a utiliza exemplul anterior, tastați următoarele în rândul Câmp din grila de proiectare a interogării:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
În acest caz, Language: este aliasul câmpului.
Pentru mai multe informații despre crearea interogărilor și a câmpurilor calculate, consultați Crearea unei interogări de selectare simple.
Utilizare IIf în cod VBA
Notă
Următoarele exemple vă arată cum să utilizați această funcție într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare, apoi introduceți unul sau mai mulți termeni în caseta de căutare.
Acest exemplu utilizează IIf funcția pentru a evalua parametrul TestMeCheckIt procedurii și returnează cuvântul Large dacă valoarea este mai mare decât 1000. Altfel, returnează cuvântul Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Mai multe exemple
Expresie:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Rezultat: Dacă
[AirportCode]este"ORD", returnează"Chicago". Altfel, dacă este[AirportCode]"ATL", returnează"Atlanta". Altfel, dacă este[AirportCode]"SEA", returnează"Seattle". Altfel, returnați"Other".Expresie:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Rezultat: Dacă
[ShipDate]este înainte de data de astăzi, returnează"Shipped". Altfel, dacă[ShipDate]este egal cu data de astăzi, returnează"Shipping today". Altfel, returnați"Unshipped".Expresie:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Rezultat: Dacă
[PurchaseDate]este anterior decât1/1/2008, returnează"Old". Altfel, returnați"New".Expresie:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Rezultat: Dacă
[Volts]este între 12 și 15 și[Amps]este între 0,25 și 0,3, returnează"OK". Altfel, returnați"Out of calibration".Expresie:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Rezultat: Dacă
[CountryRegion]este"Canada","USA", sau"Mexico", returnează"North America". Altfel, returnați"Other".Expresie:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Rezultat: Dacă
[Average]este 90 sau mai mare, returnează"A". Altfel, dacă[Average]este egal cu 80 sau mai mare, returnează"B". Altfel, dacă[Average]este 70 sau mai mare, returnează"C". Altfel, dacă[Average]este 60 sau mai mare, returnează"D". Altfel, returnați"F".
Notă
Dacă utilizați funcția pentru a crea un câmp calculat într-o IIf interogare, înlocuiți semnul egal (=) cu un alias de câmp și două puncte (:). De exemplu, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).