Funkcia IIf

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.

Pozrite si niekoľko príkladov

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

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

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

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

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

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

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