Vráti jednu z dvoch častí v závislosti od vyhodnotenia výraz.
IIf môžete použiť všade, kde môžete použiť výrazy. Funkcia IIf sa používa na určenie, či má iný výraz hodnotu true alebo false. Ak je výraz pravdivý, funkcia IIf vráti jednu hodnotu. Ak je hodnota false, funkcia IIf vráti inú hodnotu. Určíte hodnoty, ktoré funkcia IIf vráti.
Syntax
IIf ( výraz ; pravda ; nepravda )
Syntax funkcie IIf obsahuje tieto argumenty:
Argument |
Popis |
výraz |
Povinný argument. Výraz, ktorý chcete vyhodnotiť. |
truepart |
Povinný argument. Hodnota alebo výraz vrátený, ak má výrazhodnotu True. |
nepravda |
Povinný argument. Hodnota alebo výraz vrátený, ak má výrazhodnotu False. |
Poznámky
IIf vždy vyhodnotí truepart aj falsepart, aj keď vráti len jednu z nich. Z tohto dôvodu by ste mali sledovať nežiaduce vedľajšie účinky. Ak napríklad výsledkom vyhodnotenia nepravdy je delenie nulou, chyba sa vyskytne aj v prípade, že výraz má hodnotu True.
Príklady
Použitie funkcie IIf vo formulári alebo zostave Predpokladajme, že máte tabuľku Zákazníci, ktorá obsahuje pole s názvom KrajinaOblasť. Vo formulári chcete označiť, či je taliančina prvým jazykom kontaktu. Ovládací prvok môžete pridať a použiť IIf vo vlastnosti Zdroj ovládacieho prvku , napríklad takto:
=IIf([KrajinaOblasť]="Taliansko"; "Taliančina"; "Iný jazyk")
Keď otvoríte formulár vo formulárovom zobrazení, ovládací prvok zobrazí hodnotu "Taliančina" vždy, keď hodnota pre CountryRegion je Taliansko, a "Nejaký iný jazyk" vždy, keď CountryRegion je ľubovoľná iná hodnota.
Použitie funkcie IIf v zložitých výrazoch Ľubovoľný výraz môžete použiť ako ľubovoľnú časť príkazu IIf . Môžete tiež "vnoriť" výrazy 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 testovať niekoľko rôznych hodnôt KrajinaOblasť a potom zobraziť príslušný jazyk v závislosti od toho, ktorá hodnota existuje:
=IIf([KrajinaOblasť]="Taliansko", "Taliančina", IIf([KrajinaOblasť]="Francúzsko"; "Francúzština", IIf([KrajinaOblasť]="Nemecko"; "Nemčina"; "Iný jazyk")))
Text "Iný jazyk" je argument nepravdivej časti najvnútornejšej funkcie IIf . Keďže každá vnorená funkcia IIf je argumentom nepravdivej časti funkcie IIf , ktorý ju obsahuje, text "Iný jazyk" sa vráti len vtedy, ak sa všetky argumenty výrazu všetkých funkcií IIf vyhodnotia na hodnotu False.
Predpokladajme napríklad, že pracujete v knižnici. Knižničná databáza obsahuje tabuľku s názvom Vzatie z projektu, ktorá obsahuje pole s názvom Termín dokončenia, ktoré obsahuje dátum, kedy sa má vrátiť konkrétna kniha. Môžete vytvoriť formulár, ktorý označuje stav položky vzatej z projektu v ovládacom prvku pomocou funkcie IIf vo vlastnosti Zdroj ovládacieho prvku, napríklad takto:
=IIf([Termín dokončenia]<Dátum();"PO TERMÍNE";IIf([Termín dokončenia]=Dátum();"Termín dokončenia dnes";"Ešte neuhradené"))
Keď otvoríte formulár vo formulárovom zobrazení, ovládací prvok zobrazí hodnotu "OVERDUE", ak je hodnota termínu dokončenia menšia ako aktuálny dátum, termín "Termín dokončenia dnes", ak sa rovná aktuálnemu dátumu, a v opačnom prípade hodnota Nie je ešte splatná.
Poznámka: Ak chcete v argumente výrazu funkcie IIf použiť logické operátory, ako napríklad "And" alebo "Or", musíte logický výraz uzavrieť do funkcie Eval. Pozrite si príklad tabuľky, ktorá nasleduje.
Použitie IIf v dotaze
Funkcia IIf sa často používa na vytváranie vypočítavaných polí v dotazoch. Syntax je rovnaká, až na výnimku, že v dotaze musíte výraz predpísať aliasom poľa a dvojbodkou (:) namiesto znamienka rovnosti (=). Ak chcete použiť predchádzajúci príklad, do riadka Pole v mriežke návrhu dotazu zadajte nasledujúci text:
Jazyk: IIf([CountryRegion]="Italy", "Italian", "Some other language")
V tomto prípade je "Language:" alias poľa.
Ďalšie informácie o vytváraní dotazov a vypočítavaných polí nájdete v článku Vytvorenie jednoduchého výberového dotazu.
Použitie IIf v kóde VBA
Poznámka: Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.
V tomto príklade je funkcia IIf použitá na vyhodnotenie parametra TestMe procedúry CheckIt a vráti slovo Veľké, ak je hodnota väčšia ako 1 000. v opačnom prípade vráti slovo "Malé".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Ďalšie príklady
Výraz |
Výsledky |
=IIf([AirportCode]="ORD";"Chicago";IIf([Kód Letiska]="ATL";"Atlanta",IIf([Kód Letiska]="SEA";"Seattle";"Iné"))) |
Ak [AirportCode] je "ORD", vráť "Chicago". V opačnom prípade, ak [AirportCode] je "ATL", vráť "Atlanta". V opačnom prípade, ak [AirportCode] je "SEA", vráť "Seattle". V opačnom prípade vráťte hodnotu "Iné". |
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today";"Unshipped")) |
Ak je [ShipDate] skorší ako dnešný dátum, vráťte hodnotu "Odoslané". V opačnom prípade, ak sa hodnota [ShipDate] rovná dnešnému dátumu, vráťte hodnotu "Dnes odoslanie". V opačnom prípade vráťte "Unshipped" (Nezašiť). |
=IIf([Dátum Zakúpenia]<#1.1.2008#;"Starý";"Nový") |
Ak je [PurchaseDate] skorší ako 1.1.2008, vráťte hodnotu Starý. V opačnom prípade vráťte "New" (Nové). |
=IIf(Eval([Volty] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK";"Mimo kalibrácie") |
Ak [Volts] je medzi 12 a 15 a [Amps] je medzi 0,25 a 0,3, vráťte "OK". V opačnom prípade vráťte hodnotu "Mimo kalibrácie". |
=IIf(Eval([KrajinaOblasť] In ("Kanada";"USA";"Mexiko"));"Severná Amerika";"Iné") |
Ak je [KrajinaOblasť] "Kanada", "USA" alebo "Mexiko", vráť "Severná Amerika". V opačnom prípade vráťte hodnotu "Iné". |
=IIf([Priemer]>=90;"A";IIf([Priemer]>=80;"B";IIf([Priemer]>=70;"C";IIf([Priemer]>=60;"D";F")))) |
Ak je hodnota [Priemer] 90 alebo väčšia, vráťte hodnotu A. V opačnom prípade, ak [Priemer] má hodnotu 80 alebo väčšiu, vráť hodnotu B. V opačnom prípade, ak [Priemer] má hodnotu 70 alebo väčšiu, vráť hodnotu C. V opačnom prípade, ak [Priemer] má hodnotu 60 alebo väčšiu, vráť hodnotu D. V opačnom prípade vráťte hodnotu 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 Stav: IIf([DátumOdodávky]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today";"Unshipped"))