Функція IIf

Застосовується до
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Повертає одну з двох частин, залежно від результату обчислення виразу.

Ви можете використовувати IIf будь-де, де можна використовувати вирази. Використовується IIf для визначення істинності або хибності іншого виразу. Якщо вираз істинний, IIf повертає одне значення. Якщо значення хибне, IIf повертає інше значення. Укажіть значення, які IIf повертаються.

Розглянемо кілька прикладів

Синтаксис

IIf(expr, truepart, falsepart)

IIf Синтаксис функції має такі аргументи:

Аргумент Опис
expr Обов’язковий. Вираз, який потрібно обчислити.
truepart — обов’язковий аргумент. Значення або вираз, які повертаються, якщо expr є True.
falsepart — обов’язковий аргумент. Значення або вираз, які повертаються, якщо expr є False.

Примітки

IIf завжди обчислює обидва truepart значення та falsepart, навіть якщо повертає лише один із них. Через таку поведінку стежте за небажаними побічними ефектами. Наприклад, якщо під час обчислення falsepart результатів помилки ділення на нуль стається помилка, навіть якщо expr вона є True.

Приклади

Використання IIf у формі або звіті

Припустімо, що у вас є Customers таблиця з полем з іменем CountryRegion. У формі потрібно показати, чи італійська – це перша мова контакту. Ви можете додати елемент керування та використовувати IIf його Control Source властивість:

=IIf([CountryRegion]="Italy", "Italian", "Some other language")

Коли ви відкриваєте форму в поданні форми, елемент керування відображається Italian щоразу, коли це значення має Italyзначення CountryRegion . Він відображається Some other language щоразу, CountryRegion коли має будь-яке інше значення.

Використання IIf у складних виразах

Будь-який вираз можна використовувати в будь-якій частині IIf оператора. Також можна вкладати IIf вирази, які дають змогу обчислити ряд залежних виразів. Щоб продовжити роботу з попереднім прикладом, можна перевірити кілька різних CountryRegion значень, а потім відобразити відповідну мову на основі значення:

=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

Текст Some other language – це falsepart аргумент внутрішньої IIf функції. Оскільки кожна вкладена IIf функція – це falsepart аргумент IIf функції, яка її містить, текст Some other language повертається, лише якщо обчислити Falseвсі expr аргументи IIf функцій .

В іншому прикладі припустімо, що ви працюєте в бібліотеці. База даних бібліотеки містить таблицю з іменем Check Outs поля з іменем Due Date, що містить дату повернення певної книги. Ви можете створити форму зі станом взятого на редагування елемента в елементі керування, використовуючи IIf функцію у властивості цього елемента керування Control Source :

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

Коли ви відкриваєте форму в поданні форми, елемент керування відображається OVERDUE , якщо значення менше поточної Due Date дати, Due today якщо воно дорівнює поточній даті та Not Yet Due в іншому випадку.

Примітка.

Щоб використовувати логічні оператори, як-от And або Or аргумент IIfexpr функції, потрібно взяти логічний вираз у функцію Eval. Перегляньте наведений нижче приклад таблиці.

Використання IIf в запиті

Функція IIf часто використовується для створення обчислюваних полів у запитах. Синтаксис однаковий, за винятком того, що в запиті потрібно передувати виразу псевдонімом поля та двокрапкою (:) замість знака рівності (=). Щоб використати наведений вище приклад, у рядку Поле сітки макета запиту введіть таке:

Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")

У цьому випадку Language: це псевдонім поля.

Докладні відомості про створення запитів і обчислюваних полів див. в статті Створення простого вибіркового запиту.

Використовувати IIf в коді VBA

Примітка.

У наведених нижче прикладах показано, як використовувати цю функцію в модулі Visual Basic for Applications (VBA). Щоб отримати додаткові відомості про роботу з VBA, виберіть посилання розробника в розкривному списку поруч із пунктом Пошук, а потім введіть одне або кілька термінів у полі пошуку.

У цьому прикладі IIf функція обчислює TestMe параметр CheckIt процедури та повертає слово Large , якщо сума більша за 1000. В іншому разі повертається слово Small.

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

Додаткові приклади

  1. Вираз:

    =IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))
    

    Результат: якщо [AirportCode] є , повертається "ORD""Chicago". В іншому разі, якщо [AirportCode] є , повертається "ATL""Atlanta". В іншому разі, якщо [AirportCode] є , повертається "SEA""Seattle". В іншому разі повертається "Other"значення .

  2. Вираз:

    =IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))
    

    Результат: якщо [ShipDate] раніше сьогоднішньої дати, повертається значення "Shipped". В іншому разі, якщо [ShipDate] дорівнює сьогоднішній даті, повертається значення "Shipping today". В іншому разі повертається "Unshipped"значення .

  3. Вираз:

    =IIf([PurchaseDate]<#1/1/2008#,"Old","New")
    

    Результат: якщо [PurchaseDate] раніше 1/1/2008, повертається "Old". В іншому разі повертається "New"значення .

  4. Вираз:

    =IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")
    

    Результат: якщо [Volts] в діапазоні від 12 до 15 і [Amps] в межах від 0,25 до 0,3, повертається "OK". В іншому разі повертається "Out of calibration"значення .

  5. Вираз:

    =IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")
    

    Результат: якщо [CountryRegion] є , "USA"або "Mexico", повертається "North America""Canada". В іншому разі повертається "Other"значення .

  6. Вираз:

    =IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))
    

    Результат: якщо [Average] 90 або більше, повертається значення "A". В іншому разі, якщо [Average] 80 або більше, повертається значення "B". В іншому разі, якщо [Average] 70 або більше, повертається ."C" В іншому разі, якщо [Average] це 60 або більше, повертається ."D" В іншому разі повертається "F"значення .

Примітка.

Якщо функція використовується IIf для створення обчислюваного поля в запиті, замініть знак рівності (=) на псевдонім поля та двокрапку (:). Наприклад, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).