Funkce IIf

V závislosti na vyhodnocení Výraz vrátí jednu ze dvou částí.

Funkci IIf můžete použít všude, kde se dají používat výrazy. Funkcí IIf můžete určit, jestli je nějaký výraz pravda nebo nepravda. Pokud je výraz pravdivý, funkce IIf vrátí určitou hodnotu, když je výraz nepravdivý, vrátí funkce IIf jinou hodnotu. Hodnoty vracené funkcí IIf je potřeba nastavit.

Tady je několik příkladů

Syntaxe

IIf ( výraz , pravdivá_část , nepravdivá_část )

Syntaxe funkce IIf obsahuje tyto argumenty:

Argument

Popis

výraz

Povinný argument. Výraz, který chcete vyhodnotit.

pravdivá_část

Povinný argument. Hodnota nebo výraz vrácený v případě, že má argument výraz hodnotu Pravda.

část_false

Povinný argument. Hodnota nebo výraz vrácený v případě, že má argument výraz hodnotu Nepravda.


Poznámky

Funkce IIf vyhodnocuje vždycky argument pravdivá_část i argument nepravdivá_část, přestože vrací jenom jednu část. Z tohoto důvodu je potřeba dávat pozor na nežádoucí vedlejší účinky. Pokud se třeba při vyhodnocování argumentu nepravdivá_část zjistí chyba způsobená dělením nulou, dojde k chybě i přesto, že hodnota argumentu výraz je Pravda.

Příklady

Použití funkce IIf ve formuláři nebo v sestavě:    Předpokládejme, že máte tabulku Zákazníci obsahující pole s názvem Země. Ve formuláři chcete označit, jestli je Italština prvním jazykem kontaktu. Následujícím způsobem můžete přidat ovládací prvek a v jeho vlastnosti Zdroj ovládacího prvku použít funkci IIf:

=IIf([Země]="Itálie", "Italština", "Jiný jazyk")

Když nyní otevřete formulář v zobrazení formuláře, zobrazuje ovládací prvek hodnotu "Italština", pokud je hodnota pole Země Itálie a "Jiný jazyk", pokud je hodnota pole Země jiná.

Použití funkce IIf ve složených výrazech:    Jako libovolnou součást příkazu IIf lze použít libovolný výraz. Výrazy funkce IIf lze taky vnořovat a vyhodnocovat tak řadu závislých výrazů. Když navážeme na předcházející příklad, můžete testovat několik různých hodnot Země a pak na základě existence určité hodnoty zobrazit příslušný jazyk:

=IIf([Země]="Itálie", "Italština", IIf([Země]="Francie", "Francouzština", IIf([Země]="Německo", "Němčina", "Jiný jazyk")))

Text "Jiný jazyk" je argumentem nepravdivá_část nejvíce vnořené funkce IIf. Protože každá vnořená funkce IIf tvoří argument nepravdivá_část funkce IIf, ve které je obsažená, text "Jiný jazyk" funkce vrátí jenom v případě, že všechny argumenty výraz všech funkcí IIf budou vyhodnocené jako Nepravda.

Vezměme jiný příklad. Řekněme, že pracujete v knihovně. Databáze knihovny obsahuje tabulku Výpůjčky, obsahující pole Datum_vrácení s datem, kdy má být určitá kniha vrácena. Následujícím způsobem můžete vytvořit formulář označující stav vypůjčené položky v ovládacím prvku s funkcí IIf ve vlastnosti Zdroj ovládacího prvku tohoto ovládacího prvku:

=IIf([Datum_vrácení]<Date(),"ZPOŽDĚNO",IIf([]=Date(),"Vrátit dnes","Datum vrácení dosud nenastalo"))

Když nyní otevřete formulář v zobrazení formuláře, zobrazuje ovládací prvek hodnotu "ZPOŽDĚNO", pokud je hodnota pole Datum_vrácení menší než dnešní datum, "Vrátit dnes" pokud se obě data rovnají, a "Datum_vrácení dosud nenastalo" v ostatních případech.

Poznámka : Pokud chcete v argumentu výraz funkce IIf použít logické operátory, jako je "A" případně "Nebo", je potřeba uzavřít logický výraz ve funkci Vyhodnotit. Viz následující tabulka s příklady.

Použití funkce IIf v dotazu    

Funkce IIf se často používá pro vytvoření výpočtových polí v dotazech. Syntaxe je stejná, s výjimkou toho, že 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, do řádku Pole návrhové mřížky dotazu byste zadali toto:

Jazyk: IIf([Země]="Itálie", "Italština", "Jiný jazyk")

V tomto případě je alias pole "Jazyk:".

Další informace o vytváření dotazů a počítaných polí najdete v článku Výběr dat pomocí dotazu.

Použití funkce IIf v kódu jazyka VBA    

Poznámka : Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.

V tomto příkladu je pomocí funkce IIf vyhodnocen parametr TestMe procedury CheckIt a v případě hodnoty větší než 1 000 je vrácen řetězec "Velký". V opačném případě je vrácen řetězec "Malý".

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Další příklady

Výraz

Výsledky

=IIf([Kód_letiště]="PRG","Praha",IIf([Kód_letiště]="FRA","Frankfurt",IIf([Kód_letiště]="BRU","Brusel","Jiné")))

Pokud je [Kód_letiště] "PRG", vrátí "Praha". Jinak, když [Kód_letiště] je "FRA", vrátí "Frankfurt". Jinak pokud [Kód_letiště] je "BRU", vrátí "Brusel". V ostatních případech vrátí "Jiné".

=IIf([Datum_odeslání]<Date(),"Odesláno",IIf([Datum_odeslání]=Date(),"Zasláno dnes","Neodesláno"))

Pokud [Datum_odeslání] předchází dnešnímu datu, vrátí "Odesláno". Jinak pokud se [Datum_odeslání] rovná dnešnímu datu, vrátí "Zasláno dnes". V ostatních případech vrátí "Neodesláno."

=IIf([Datum_nákupu]<#1/1/2008#,"Starý","Nový")

Pokud je [Datum_nákupu] dřívější než 1/1/2008, vrátí hodnotu "Starý". Jinak vrátí hodnotu "Nový."

=IIf(Vyhodnotit([Volty] Between 12 And 15 And [Ampéry] Between 0,25 And 0,3),"OK","Nezkalibrováno")

Pokud je argument [Volty] v rozmezí od 12 do 15 a argument [Ampéry] v rozmezí 0,25 a 0,3, vrátí "OK". Jinak vrátí "Nezkalibrováno."

=IIf(Vyhodnotit([Země] In ("Kanada","USA","Mexiko")),"Severní Amerika","Jiné")

Pokud argument [Země] je "Kanada", "USA" nebo "Mexiko", vrátí "Severní Amerika". Jinak vrátí "Jiné".

=IIf([Průměr]>=90,"A",IIf([Průměr]>=80,"B",IIf([Průměr]>=70,"C",IIf([Průměr]>=60,"D","F"))))

Pokud je [Průměr] 90 a víc, vrátí "A". Jinak když je [Průměr] 80 a víc, vrátí "B". Jinak pokud je [Průměr] 70 a víc, vrátí "C". Jinak jestliže je [Průměr] 60 a víc, vrátí "D". V ostatních případech vrátí "F".

Poznámka : Pokud funkci IIf použijete k vytvoření počítaného pole dotazu, zaměňte symbol rovná se (=) za alias pole a dvojtečku (:). Například zadejte Stav: IIf([Datum_odeslání]<Date(),"Odesláno",IIf([Datum_odeslání]=Date(),"Zasláno dnes","Neodesláno"))

Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×