Returnează una din două părți, în funcție de evaluarea unei expresie.
Puteți utiliza IIf oriunde puteți utiliza expresii. Utilizați IIf pentru a determina dacă altă expresie este adevărată sau falsă. Dacă expresia este adevărată, IIf returnează o valoare; dacă este fals, IIf returnează altul. Specificați valorile pe care le returnează IIf .
Sintaxă
IIf ( expresie , partea adevărată , parte falsă )
Sintaxa funcției IIf are următoarele argumente:
Argument |
Descriere |
expr |
Obligatoriu. Expresie pe care doriți să o evaluați. |
parte adevărată |
Obligatoriu. Valoarea sau expresia returnată dacă expr este True. |
parte falsă |
Obligatoriu. Valoarea sau expresia returnată dacă expr este False. |
Observații
IIf evaluează întotdeauna atât partea adevărată , cât și partea falsă, chiar dacă returnează doar una dintre ele. Din acest motiv, ar trebui să urmăriți pentru reacții adverse nedorite. De exemplu, dacă evaluarea părții false duce la o eroare de împărțire la zero, apare o eroare chiar dacă expr este True.
Exemple
Utilizarea IIf într-un formular sau raport Să presupunem că aveți un tabel Clienți care conține un câmp denumit ȚarăRegiune. Într-un formular, doriți să specificați dacă italiana este prima limbă a persoanei de contact. Puteți să adăugați un control și să utilizați IIf în proprietatea Sa Sursă control , astfel:
=IIf([ȚarăRegiune]="Italia", "Italiană", "Altă limbă")
Atunci când deschideți formularul în vizualizarea Formular, controlul afișează "italiană" ori de câte ori valoarea pentru ȚarăRegiune este Italia și "Altă limbă" de fiecare dată când ȚarăRegiune este orice altă valoare.
Utilizarea IIf în expresii complexe Puteți utiliza orice expresie ca parte a unei instrucțiune IIf . De asemenea, puteți "imbrica" expresii IIf , permițându-vă să evaluați o serie de expresii dependente. Pentru a continua cu exemplul anterior, se recomandă să testați mai multe valori ȚarăRegiune diferite, apoi să afișați limba corespunzătoare, în funcție de valoarea care există:
=IIf([ȚarăRegiune]="Italia", "Italiană", IIf([ȚarăRegiune]="Franța", "Franceză", IIf([ȚarăRegiune]="Germania", "Germană", "Altă limbă")))
Textul "Altă limbă" este argumentul părții false a funcției IIf cea mai interioară. Deoarece fiecare funcție IIf imbricată este argumentul părții false a funcției IIf care o conține, textul "Altă limbă" este returnat doar dacă toate argumentele expr ale tuturor funcțiilor IIf se evaluează la False.
Pentru un alt exemplu, să presupunem că lucrați la o bibliotecă. Baza de date a bibliotecii are un tabel denumit Extrageri care conține un câmp, denumit Dată scadență, care conține data la care trebuie să revină o anumită carte. Puteți crea un formular care indică starea unui element extras într-un control utilizând funcția IIf din proprietatea Sursă control a acelui control, astfel:
=IIf([Dată scadență]<Date(),"DEPĂȘIT",IIf([Dată scadență]=Date(),"Scadentă astăzi","Neactceptat încă"))
Atunci când deschideți formularul în Vizualizarea formular, controlul afișează "DEPĂȘIT" dacă valoarea Datei scadente este mai mică decât data curentă, "Scadentă astăzi" dacă este egală cu data curentă și "Ne scadent încă", altfel.
Notă: Pentru a utiliza operatori logici, cum ar fi "And" sau "Or" în argumentul expr al funcției IIf , trebuie să încadrați expresia logică în funcția Eval . Vedeți tabelul exemplu care urmează.
Utilizarea IIf într-o interogare
Funcția IIf este utilizată frecvent 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 precedent, tastați următoarele în rândul Câmp din grila de proiectare a interogării:
Limbă: IIf([ȚarăRegiune]="Italia", "Italiană", "Altă limbă")
În acest caz, "Limbă:" este aliasul câmpului.
Pentru mai multe informații despre crearea interogărilor și a câmpurilor calculate, consultați articolul Crearea unei interogări de selectare simple.
Utilizarea IIf în cod VBA
Notă: Exemplele care urmează demonstrează utilizarea acestei funcții î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 și introduceți unul sau mai mulți termeni în caseta de căutare.
Acest exemplu utilizează funcția IIf pentru a evalua parametrul TestMe al procedurii CheckIt și returnează cuvântul "Mare" dacă valoarea este mai mare decât 1000; altfel, returnează cuvântul "Mic".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Mai multe exemple
Expresie |
Rezultatele |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other"))) |
Dacă [AirportCode] este "ORD", returnează "Chicago". În caz contrar, dacă [AirportCode] este "ATL", returnează "Atlanta". În caz contrar, dacă [AirportCode] este "SEA", returnează "Seattle". În caz contrar, returnează "Altele". |
=IIf([DatăExpediere]<Date(),"Livrat",IIf([DatăExpediere]=Date(),"Livrare astăzi","Neshipped")) |
Dacă [DatăExpediere] este anterioară datei de astăzi, returnați "Livrat". În caz contrar, dacă [DatăExpediere] este egal cu data de astăzi, returnați "Livrare astăzi". În caz contrar, returnează "Unshipped". |
=IIf([Dată Achiziție]<#1/1/2008#,"Vechi","Nou") |
Dacă [Dată Achiziție] este anterioară datei de 01.01.2008, returnați "Vechi". În caz contrar, returnează "Nou". |
=IIf(Eval([Volți] Between 12 And 15 And [Amperi] Between 0.25 And 0.3),"OK","Din calibrare") |
Dacă [Volți] este între 12 și 15 și [Amperi] este între 0,25 și 0,3, returnați "OK". În caz contrar, returnați "Nu mai este calibrare". |
=IIf(Eval([ȚarăRegiune] In ("Canada","SUA","Mexic")),"America de Nord","Altele") |
Dacă [ȚarăRegiune] este "Canada", "SUA" sau "Mexic", returnează "America de Nord". În caz contrar, returnează "Altele". |
=IIf([Medie]>=90,"A",IIf([Medie]>=80,"B",IIf([Medie]>=70,"C",IIf([Medie]>=60,"D","F")))) |
Dacă [Medie] este 90 sau mai mare, returnează "A". Altfel, dacă [Medie] este 80 sau mai mare, returnează "B". Altfel, dacă [Medie] este 70 sau mai mare, returnează "C". Altfel, dacă [Medie] este 60 sau mai mare, returnează "D". În caz contrar, returnează "F". |
Notă: Dacă utilizați funcția IIf pentru a crea un câmp calculat într-o interogare, înlocuiți semnul egal (=) cu un alias de câmp și două puncte (:). De exemplu, Stare: IIf([DatăExpediere]<Date(),"Livrat",IIf([DatăExpediere]=Date(),"Livrare astăzi","Neshipped"))