Funkce IIf

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vrátí jednu ze dvou částí v závislosti na vyhodnocení výrazu.

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;truepart;falsepart)

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ý, pokud výrazhodnotu True.
část_false Povinný argument. Hodnota nebo výraz vrácený, pokud výraz je Nepravda.

Poznámky

IIf vždy vyhodnocuje truepart i falsepart, i když vrací jenom jednu z nich. Z tohoto důvodu je potřeba dávat pozor na nežádoucí vedlejší účinky. Pokud například vyhodnocení falsepart vede k chybě dělení nulou, dojde k chybě i v případě, že výrazhodnotu True.

Příklady

Použití funkce IIf ve formuláři nebo sestavě Předpokládejme, že máte tabulku Zákazníci, která obsahuje pole s názvem ZeměRegion. Ve formuláři chcete označit, jestli je prvním jazykem kontaktu italština. Můžete přidat ovládací prvek a použít IIf v jeho vlastnosti Zdroj ovládacího prvku , například takto:

=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í IIf ve složitých výrazech Jako součást příkazu IIf můžete použít libovolný výraz. Můžete také "vnořit" výrazy IIf , což vám umožní vyhodnotit řadu závislých výrazů. Pokud chcete pokračovat v předchozím příkladu, můžete otestovat několik různých hodnot CountryRegion a pak zobrazit odpovídající jazyk v závislosti na tom, která hodnota existuje:

=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 falsepart funkce IIf , která je nejvnitřnější. Vzhledem k tomu, že každá vnořená funkce IIf je argumentem falsepart funkce IIf , která ji obsahuje, text "Jiný jazyk" se vrátí pouze v případě, že se všechny argumenty výrazu všech funkcí IIf vyhodnotí jako Nepravda.

V jiném příkladu předpokládejme, že pracujete v knihovně. Databáze knihovny obsahuje tabulku s názvem Rezervovat, která obsahuje pole s názvem Termín splnění, které obsahuje datum vrácení určité knihy. Pomocí funkce IIf ve vlastnosti Zdroj ovládacího prvku můžete vytvořit formulář, který označuje stav rezervované položky v ovládacím prvku, například takto:

=IIf([Due Date]<Date();"OVERDUE";IIf([Due Date]=Date();"Due today";"Not Yet Due"))

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 "And" nebo "Or", musíte logický výraz uzavřít do funkce Eval . Podívejte se na následující ukázku tabulky.

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íte před výrazem použít alias pole a dvojtečku (:) místo rovnítku (=). 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 Vytvoření jednoduchého výběrového 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

  1. Výraz:

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

    Výsledek:

    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é".

  2. Výraz:

    =IIf([Datum_expedice]<Date();"Odesláno";IIf([Datum_odeslání]=Date();"Odeslání dnes";"Neodeslané"))

    Výsledek:

    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."

  3. Výraz:

    =IIf([Datum nákupu]<#1.1.2008#;"Starý";"Nový")

    Výsledek:

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

  4. Výraz:

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

    Výsledek:

    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."

  5. Výraz:

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

    Výsledek:

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

  6. Výraz:

    =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"))))

    Výsledek:

    Pokud je hodnota [Průměr] 90 nebo vyšší, vrátí hodnotu "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 k vytvoření počítaných polí v dotazu používáte funkci IIf , nahraďte znaménko rovná se (=) aliasem pole a dvojtečkami (:). Například Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date();"Shipping today","Unshipped"))