Vráti jednu z dvoch častí v závislosti od vyhodnotenia výrazu.
Môžete použiť IIf všade, kde môžete použiť výrazy. Používa IIf sa na určenie, či má iný výraz hodnotu True alebo False. Ak má výraz hodnotu true, IIf vráti jednu hodnotu. Ak je hodnota false, IIf vráti inú hodnotu. Vy určíte hodnoty, ktoré IIf sa vrátia.
Syntax
IIf(expr, truepart, falsepart)
Syntax IIf funkcie má tieto argumenty:
| Argument | Popis |
|---|---|
expr |
Povinný argument. Výraz, ktorý chcete vyhodnotiť. |
truepart |
Povinný argument. Vrátená hodnota alebo výraz, ak expr je .True |
falsepart |
Povinný argument. Vrátená hodnota alebo výraz, ak expr je .False |
Poznámky:
IIf Vždy vyhodnotí obe truepart hodnoty And falsepart, aj keď vráti len jedno z nich. V dôsledku tohto správania sledujte nežiaduce vedľajšie efekty. Ak je napríklad výsledkom vyhodnotená falsepart chyba delenia nulou, chyba sa vyskytne aj vtedy, ak expr je hodnota .True
Príklady
Použitie IIf vo formulári alebo zostave
Predpokladajme, že máte tabuľku Customers , ktorá obsahuje pole s názvom CountryRegion. Vo formulári chcete uviesť, či je taliančina materinským jazykom kontaktu. Môžete pridať ovládací prvok a použiť IIf v jeho Control Source vlastnosti:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Keď otvoríte formulár vo formulárovom zobrazení, ovládací prvok sa zobrazí Italian vždy, keď je hodnota pre CountryRegion .Italy Zobrazí sa Some other language vždy, keď CountryRegion má inú hodnotu.
Používa IIf sa v zložitých výrazoch
V ľubovoľnej časti príkazu IIf môžete použiť ľubovoľný výraz. Výrazy môžete aj vnoriť IIf , čo vám umožní vyhodnotiť rad závislých výrazov. Ak chcete pokračovať v predchádzajúcom príklade, môžete otestovať niekoľko rôznych CountryRegion hodnôt a potom zobraziť príslušný jazyk na základe tejto hodnoty:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Text Some other language je argumentom falsepart funkcie most inner.IIf Keďže každá vnorená IIf funkcia je argumentom falsepart funkcie IIf , ktorá ju obsahuje, text Some other language sa vráti iba vtedy, ak sa všetky expr argumenty IIf funkcií vyhodnotia ako False.
V ďalšom príklade predpokladajme, že pracujete v knižnici. V databáze knižnice sa nachádza tabuľka s názvom Check Outs , ktorý obsahuje pole s dátumom Due Date, kedy je potrebné vrátiť konkrétnu knihu. Pomocou funkcie vo vlastnosti ovládacieho prvku môžete vytvoriť formulár, ktorý zobrazuje stav položky vzatej z projektu v ovládacom prvku IIfControl Source :
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Keď otvoríte formulár v zobrazení formulára, ovládací prvok zobrazí OVERDUE , ak je hodnota Due Date nižšia ako aktuálny dátum, Due today či je rovnaká ako aktuálny dátum a Not Yet Due v opačnom prípade.
Poznámka
Ak chcete použiť logické operátory, ako napríklad And alebo Or v argumente funkcie exprIIf , logický výraz je nutné uzavrieť do funkcie Eval . Pozrite si nasledujúcu vzorovú tabuľku.
Použitie IIf v dotaze
Funkcia IIf sa často používa na vytváranie vypočítavaných polí v dotazoch. Syntax je rovnaká, s tým rozdielom, že v dotaze musíte na začiatok výrazu namiesto znaku rovnosti (=) vložiť alias poľa a dvojbodku (:). V predchádzajúcom príklade zadajte do riadka Pole v mriežke návrhu dotazu toto:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
V tomto prípade Language: ide o alias poľa.
Ďalšie informácie o vytváraní dotazov a vypočítavaných polí nájdete v téme Vytvorenie jednoduchého výberového dotazu.
Použitie IIf v kóde VBA
Poznámka
Nasledujúce príklady ukazujú, ako používať túto funkciu v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte v rozbaľovacom zozname vedľa položky Hľadať odkaz pre vývojára a potom do vyhľadávacieho poľa zadajte nejaké výrazy.
V tomto príklade je funkcia IIf použitá na vyhodnotenie TestMe parametra procedúry CheckIt a vráti slovo Large , ak je suma väčšia ako 1000. V opačnom prípade vráti slovo Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Ďalšie príklady
Výraz:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Výsledok: Ak
[AirportCode]je"ORD", return"Chicago". V opačnom prípade, ak[AirportCode]je"ATL", return"Atlanta". V opačnom prípade, ak[AirportCode]je"SEA", return"Seattle". V opačnom prípade vráťte"Other".Výraz:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Výsledok: Ak
[ShipDate]je skorší dátum ako dnešný dátum, vráti"Shipped". V opačnom prípade, ak[ShipDate]je hodnota rovnaká ako dnešný dátum, vráti sa"Shipping today". V opačnom prípade vráťte"Unshipped".Výraz:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Výsledok: Ak
[PurchaseDate]je skoršie než1/1/2008, return"Old". V opačnom prípade vráťte"New".Výraz:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Výsledok: Ak
[Volts]je medzi 12 a 15 a[Amps]je medzi 0,25 a 0,3, vráti ."OK"V opačnom prípade vráťte"Out of calibration".Výraz:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Výsledok: Ak
[CountryRegion]je"Canada","USA", alebo"Mexico", vrátiť"North America". V opačnom prípade vráťte"Other".Výraz:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Výsledok: Ak
[Average]je hodnota 90 alebo vyššia, vráti"A". V opačnom prípade, ak[Average]je hodnota 80 alebo vyššia, vráťte"B"sa. V opačnom prípade, ak[Average]je hodnota 70 alebo vyššia, vráťte"C"sa. V opačnom prípade, ak[Average]je hodnota 60 alebo vyššia, vráťte"D"sa. V opačnom prípade vráťte"F".
Poznámka
Ak používate funkciu IIf na vytvorenie vypočítavaného poľa v dotaze, nahraďte znamienko rovnosti (=) aliasom poľa a dvojbodkou (:). Napríklad: Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).