Egy kifejezés kiértékelésétől függően a két rész egyikét adja vissza.
Az IIf-t bárhol használhatja, ahol kifejezéseket használhat. Az IIf használatával állapíthatja meg, hogy egy másik kifejezés igaz vagy hamis. Ha a kifejezés igaz, az IIf egy értéket ad vissza; ha hamis, az IIf egy másikat ad vissza. Itt adhatja meg az IIf által visszaadott értékeket.
Szintaxis
IIf ( kifejezés ; truepart ; falsepart )
Az IIf függvény szintaxisa az alábbi argumentumokat foglalja tartalmazza:
argumentumok |
Leírás |
kifejezés |
Kötelező. Kiértékelni kívánt kifejezés. |
igazrész |
Megadása kötelező. Érték vagy kifejezés, ha a kifejezésigaz. |
hamisrész |
Megadása kötelező. A visszaadott érték vagy kifejezés, ha a kifejezéshamis. |
Megjegyzések
Az IIf mindig a truepart és a falsepart értéket is kiértékeli, annak ellenére, hogy csak az egyiket adja vissza. Emiatt watch a nemkívánatos mellékhatásokat. Ha például a falsepart kiértékelése nullával történő osztást eredményez, akkor a hiba akkor is előfordul, ha a kifejezésértéke Igaz.
Példák
Az IIf használata űrlapon vagy jelentésben Tegyük fel, hogy van egy Ügyfelek táblája, amely egy CountryRegion nevű mezőt tartalmaz. Egy űrlapon azt szeretné jelölni, hogy az olasz a kapcsolat első nyelve-e. Hozzáadhat egy vezérlőt, és használhatja az IIf-t a Vezérlőforrás tulajdonságában, a következőképpen:
=IIf([OrszágRégió]="Olaszország"; "Olasz"; "Más nyelv")
Amikor űrlapnézetben nyitja meg az űrlapot, a vezérlő "olasz" értéket jelenít meg, amikor a CountryRegion értéke Olaszország, és "Más nyelv" értéket, amikor a CountryRegion bármely más érték.
Az IIf használata összetett kifejezésekben Az IIf-utasítások bármely kifejezését használhatja. IIf-kifejezéseket is "beágyazhat", így függő kifejezések sorozatát értékelheti ki. Az előző példával való folytatáshoz érdemes lehet több különböző CountryRegion értéket tesztelni, majd megjeleníteni a megfelelő nyelvet attól függően, hogy melyik érték létezik:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
A "Valami más nyelv" szöveg a legbelső IIf függvény falsepart argumentuma. Mivel minden beágyazott IIf függvény az azt tartalmazó IIf függvény falsepart argumentuma, a "Más nyelv" szöveg csak akkor lesz visszaadva, ha az összes IIf függvény összes kifejezésargumentuma Hamis értéket ad vissza.
Tegyük fel például, hogy egy könyvtárban dolgozik. Az erőforrástár-adatbázis tartalmaz egy Kivételek nevű táblát, amely tartalmaz egy Határidő nevű mezőt, amely egy adott könyv esedékességének dátumát tartalmazza. Létrehozhat egy űrlapot, amely egy vezérlőelem kivett elemének állapotát jelzi a vezérlő Vezérlőforrás tulajdonságának IIf függvényével, az alábbi módon:
=IIf([Határidő]<Dátum(),"LEJÁRT";IIf([Határidő]=Dátum(),"Ma esedékes";"Még nem esedékes"))
Amikor űrlapnézetben nyitja meg az űrlapot, a vezérlőelem "LEJÁRT" értéket jelenít meg, ha a Határidő értéke kisebb, mint az aktuális dátum, "Ma esedékes", ha az egyenlő az aktuális dátummal, és "Még nem esedékes".
Megjegyzés: Ha logikai operátorokat (például "And" vagy "Or") szeretne használni az IIf függvény kifejezés argumentumában, a logikai kifejezést az Eval függvénybe kell tenni. Tekintse meg az alábbi példatáblát.
Az IIf használata lekérdezésben
Az IIf függvényt gyakran használják számított mezők létrehozására a lekérdezésekben. A szintaxis ugyanaz, azzal a kivétellel, hogy egy lekérdezésben a kifejezést egy mezőalias és egy kettőspont (:) előtaggal kell előtaggal elneveznie az egyenlőségjel (=) helyett. Az előző példa használatához írja be a következőt a lekérdezéstervező rács Mező sorába:
Nyelv: IIf([CountryRegion]="Olaszország", "Olasz", "Más nyelv")
Ebben az esetben a "Language:" a mezőalias.
A lekérdezések és számított mezők létrehozásáról további információt az Egyszerű választó lekérdezés létrehozása című cikkben talál.
Az IIf használata VBA-kódban
Megjegyzés: A következő példák egy Visual Basic for Applications (VBA) modulban mutatják be a függvény használatát. A VBA használatáról a Keresés elem mellett található legördülő listából a fejlesztői forrásokat választva, majd egy vagy több keresőszót megadva kaphat további tájékoztatást.
Ez a példa az IIf függvénnyel értékeli ki a CheckIt eljárás TestMe paraméterét, és a "Nagy" szót adja vissza, ha az összeg nagyobb, mint 1000; ellenkező esetben a "Kicsi" szót adja vissza.
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
További példák
Expression |
Eredmények |
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other"))) |
Ha az [AirportCode] értéke "ORD", a "Chicago" értéket adja vissza. Ellenkező esetben, ha az [AirportCode] értéke "ATL", az "Atlanta" értéket adja vissza. Ellenkező esetben, ha az [AirportCode] értéke "SEA", akkor a "Seattle" értéket adja vissza. Ellenkező esetben az "Egyéb" értéket adja vissza. |
=IIf([SzállításiDátum]<Date(),"Szállítási";IIf([SzállításiDátum]=Dátum(),"Szállítás ma";"Nem szállítva")) |
Ha a [SzállításiDátum] a mai dátum előtt van, akkor a "Szállítási" értéket adja vissza. Ellenkező esetben, ha a [ShipDate] értéke megegyezik a mai dátummal, akkor a "Szállítás ma" értéket adja vissza. Ellenkező esetben az "Unshipped" (Nincs berakva) értéket adja vissza. |
=IIf([PurchaseDate]<#2008.01.01.#;"Régi","Új") |
Ha a [PurchaseDate] értéke 2008. 01. 01. előtt van, akkor a "Régi" értéket adja vissza. Ellenkező esetben az "Új" értéket adja vissza. |
=IIf(Eval([Volt] 12 és 15 között és [Amps] 0,25 és 0,3 között);"OK";"Nincs kalibrálás") |
Ha a [Volt] értéke 12 és 15 között van, és az [Amps] értéke 0,25 és 0,3 között van, akkor az "OK" értéket adja vissza. Ellenkező esetben adja vissza a "Nincs kalibrálás" értéket. |
=IIf(Eval([OrszágRégió] In ("Kanada","USA";"Mexikó"));"Észak-Amerika";"Egyéb") |
Ha a [CountryRegion] értéke "Kanada", "USA" vagy "Mexikó", akkor a "Észak-Amerika" értéket adja vissza. Ellenkező esetben az "Egyéb" értéket adja vissza. |
=IIf([Átlag]>=90,"A";IIf([Átlag]>=80,"B";IIf([Átlag]>=70,"C",IIf([Átlag]>=60,"D","F")))) |
Ha az [Átlag] értéke 90 vagy nagyobb, az "A" értéket adja vissza. Ellenkező esetben, ha az [Átlag] értéke 80 vagy nagyobb, akkor a "B" értéket adja vissza. Ellenkező esetben, ha az [Átlag] értéke 70 vagy nagyobb, akkor a "C" értéket adja vissza. Ellenkező esetben, ha az [Átlag] értéke 60 vagy nagyobb, akkor a "D" értéket adja vissza. Ellenkező esetben az "F" értéket adja vissza. |
Megjegyzés: Ha az IIf függvénnyel hoz létre számított mezőt egy lekérdezésben, cserélje le az egyenlőségjelet (=) egy mezőaliasra és egy kettőspontra (:). Állapot: IIf([ShipDate]<Date(),"Szállítási",IIf([SzállításiDátum]=Dátum(),"Szállítás ma","Nem szállítva"))