Vrátí jednu ze dvou částí v závislosti na vyhodnocení výrazu.
Můžete je použít IIf kdekoli, kde se dají používat výrazy. Slouží IIf k určení, zda je jiný výraz pravda nebo nepravda. Pokud je výraz pravdivý, IIf vrátí jednu hodnotu. Pokud je hodnota False, IIf vrátí jinou hodnotu. Hodnoty, které se mají vrátit, IIf zadáte sami.
Syntaxe
IIf(expr, truepart, falsepart)
Syntaxe IIf funkce obsahuje tyto argumenty:
| Argument | Popis |
|---|---|
expr |
Povinný argument. Výraz, který chcete vyhodnotit. |
truepart |
Povinný argument. Hodnota nebo výraz vrácený pokud expr je True. |
falsepart |
Povinný argument. Hodnota nebo výraz vrácený pokud expr je False. |
Poznámky
IIf vždy vyhodnotí obě truepart a falsepart, přestože vrací pouze jednu z nich. Kvůli tomuto chování si všímejte nežádoucích vedlejších účinků. Pokud je například výsledkem vyhodnocení falsepart chyba dělení nulou, dojde k chybě, i když expr je True.
Příklady
Použití IIf ve formuláři nebo sestavě
Předpokládejme, že máte Customers tabulku, která obsahuje pole s názvem CountryRegion. Ve formuláři chcete zobrazit, jestli je italština prvním jazykem kontaktu. Ovládací prvek můžete přidat a v jeho Control Source vlastnosti použítIIf:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Při otevření formuláře ve formulářovém zobrazení se ovládací prvek zobrazí Italian vždy, když je Italyhodnota .CountryRegion Zobrazí se Some other language , kdykoli CountryRegion má jakoukoli jinou hodnotu.
Použití IIf ve složitých výrazech
V libovolné části příkazu můžete použít libovolný výraz.IIf Můžete také výrazy vnořit IIf , což umožňuje vyhodnocení řady závislých výrazů. Budeme-li chtít pokračovat v předchozím příkladu, můžete vyzkoušet několik různých CountryRegion hodnot a na základě hodnoty pak zobrazit příslušný jazyk:
=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))
Text Some other language je argumentem falsepart nejvíce IIf vnořené funkce. Protože každá vnořená IIf funkce je falsepart argumentem IIf funkce, která ji obsahuje, text Some other language se vrátí jenom v případě, že jsou všechny expr argumenty IIf funkcí vyhodnocené jako False.
Jiný příklad uveďme situaci, kdy pracujete v knihovně. Databáze knihovny obsahuje tabulku s polem Check Outs , Due Datekteré obsahuje datum, kdy má být konkrétní kniha vrácena. Pomocí funkce ve vlastnosti tohoto ovládacího prvku můžete vytvořit formulář zobrazující stav rezervované položky v ovládacím prvku IIfControl Source :
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Při otevření formuláře ve formulářovém zobrazení ovládací prvek zobrazí OVERDUE , jestli je hodnota Due Date menší než aktuální datum, Due today jestli je rovna aktuálnímu datu a Not Yet Due v opačném případě.
Poznámka
Pokud chcete použít logické operátory, jako je And například Or nebo v argumentu exprIIf funkce, musíte logický výraz uzavřít do funkce Vyhodnotit . Podívejte se na následující příkladovou tabulku.
Použití IIf v dotazu
Tato IIf funkce se často používá k vytvoření počítaných polí v dotazech. Syntaxe je stejná, pouze v dotazu musí výrazu předcházet alias pole a dvojtečka (:), ne symbol rovná se (=). Když se vrátíme k předcházejícímu příkladu, zadejte do řádku Pole v návrhové mřížce dotazu toto:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
V tomto případě Language: se jedná o alias pole.
Další informace o vytváření dotazů a počítaných polí najdete v tématu Vytvoření jednoduchého výběrového dotazu.
Použití IIf v kódu jazyka VBA
Poznámka
Následující příklady ukazují použití této funkce v modulu VBA (jazyk Visual Basic for Application). Další informace o práci s modulem VBA získáte, když v rozevíracím seznamu vedle položky Hledat vyberete Referenční informace pro vývojáře a pak do vyhledávacího pole zadáte požadované pojmy.
Tento příklad používá IIf funkci k vyhodnocení TestMe parametru CheckIt procedury a vrátí slovo Large , pokud je hodnota větší než 1000. V opačném případě vrátí slovo Small.
Function CheckIt(TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Další příklady
Výraz:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Výsledek: Pokud
[AirportCode]je"ORD", vrátí"Chicago". V opačném případě, pokud[AirportCode]je"ATL", return"Atlanta". V opačném případě, pokud[AirportCode]je"SEA", return"Seattle". V opačném případě vraťte"Other".Výraz:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Výsledek: Pokud
[ShipDate]je dřívější než dnešní datum, vrátí"Shipped". V opačném případě, pokud[ShipDate]se rovná dnešnímu datu, vrátí"Shipping today"hodnotu . V opačném případě vraťte"Unshipped".Výraz:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Výsledek: Pokud
[PurchaseDate]je dřívější než1/1/2008, vrátí"Old". V opačném případě vraťte"New".Výraz:
=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")Výsledek: KDYŽ
[Volts]je mezi 12 a 15 a[Amps]je mezi 0,25 a 0,3, vrátí"OK". V opačném případě vraťte"Out of calibration".Výraz:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Výsledek: Pokud
[CountryRegion]je"Canada","USA", nebo"Mexico", return"North America". V opačném případě vraťte"Other".Výraz:
=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))Výsledek: Pokud
[Average]je hodnota 90 a víc, vrátí"A"se . Jinak, pokud[Average]je hodnota 80 a více, vrátí"B"hodnotu. Jinak pokud[Average]je 70 a víc, vrátí hodnotu"C". Jinak pokud[Average]je 60 nebo víc, vrátí"D"hodnotu. V opačném případě vraťte"F".
Poznámka
Pokud funkci použijete IIf k vytvoření počítaného pole dotazu, nahraďte symbol rovná se (=) aliasem pole a dvojtečkou:. Například, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).