Повертає одну з двох частин, залежно від результату обчислення виразу.
Функцію IIf можна використовувати скрізь, де можна використовувати вирази. Функцію IIf можна використати, щоб визначити істинність або хибність іншого виразу. Якщо значення виразу – True, то функція IIf повертає одне значення, а якщо значення виразу – False, функція IIf повертає інше значення. Значення, які повертає функція IIf, визначаєте ви.
Синтаксис
IIf ( вираз , якщо_істина , якщо_хибність )
Синтаксис функції IIf має такі аргументи:
|
Аргумент |
Опис |
|---|---|
|
expr |
Обов’язковий аргумент. Вираз, який потрібно обчислити. |
|
якщо_істина |
Обов’язковий аргумент. Значення або вираз, що повертається, якщо вираз має значення True (істина). |
|
якщо_хибність |
Обов’язковий аргумент. Значення або вираз, що повертається, якщо вираз має значення False (хибність). |
Примітки
Функція IIf завжди обчислює значення якщо_істина та якщо_хибність, навіть якщо повертає лише одне з них. Тому потрібно зважати на небажані побічні ефекти. Наприклад, якщо в результаті обчислення значення якщо_хибність виникла помилка через ділення на нуль, помилка виникне, навіть якщо вираз має значення True.
Приклади
Використання функції IIf у формі або звіті Припустімо, у вас є таблиця "Клієнти", яка містить поле "Країна або регіон". У формі потрібно окномітити, чи італійська – перша мова контакту. Ви можете додати елемент керування та використовувати функцію IIf у властивості Джерело елемента керування , наприклад:
=IIf([Країна]="Італія", "Італійська", "Інша мова")
Якщо відкрити форму в поданні форми, елемент керування відображатиме "Італійська", якщо значення поля "Країна" – "Італія", та "Інша мова", якщо для поля "Країна" задано інше значення.
Використання функції IIf у складних виразах Будь-який вираз можна використовувати як будь-яку частину інструкції IIf . Також можна "вкласти" вирази IIf , що дає змогу обчислити ряд залежних виразів. Щоб продовжити роботу з попереднім прикладом, можна перевірити на наявність кількох різних значень країна або регіон, а потім відобразити відповідну мову залежно від того, яке значення існує:
=IIf([Країна]="Італія", "Італійська", IIf([Країна]="Франція", "Французька", IIf([Країна]="Німеччина", "Німецька", "Інша мова")))
Текст "Інша мова" – це аргумент, який має значення якщо_хибність внутрішньої функції IIf. Якщо кожна вкладена функція IIf – це аргумент, який має значення якщо_хибність у функції IIf, яка її містить, текст "Інша мова" повертається лише якщо всі аргументи виразу всіх функцій IIf обчислені як "False".
У іншому прикладі робота проводиться, наприклад у бібліотеці. У базі даних бібліотеки міститься таблиця "Взято на редагування", у якій є поле "Дата завершення", із зазначенням дати повернення певної книги. Ви можете створити форму, яка позначає стан взятого на редагування елемента в елементі керування, використовуючи функцію IIf у властивості Джерело елемента керування цього елемента керування, наприклад:
=IIf([Дата завершення]<Date(),"Прострочено",IIf([Дата завершення]=Date(),"Сьогодні", "Ще не завершилося"))
Якщо відкрити форму в поданні форми, елемент керування відобразить "Прострочено", якщо значення Дати завершення менше за поточну дату, "Сьогодні" якщо значення відповідає поточній даті й "Ще не завершилося" в іншому випадку.
Примітка.: Щоб використовувати логічні оператори, як-от "And" або "Or" в аргументі виразу функції IIf , потрібно взяти логічний вираз у функцію Eval . Перегляньте наведений нижче приклад таблиці.
Використання функції IIf у запиті
Функція IIf часто використовується під час створення обчислюваних полів у запитах. Синтаксис залишається той самий, за винятком того, що в запиті на початку кожного виразу необхідно додавати псевдонім поля і двокрапку (:) замість знака рівності (=). Щоб використати попередній приклад, у рядок символів для сітки макета запиту Поле потрібно ввести:
Мова: IIf([Країна]="Італія", "Італійська", "Інша мова")
У цьому випадку "Мова" – це псевдонім поля.
Докладні відомості про створення запитів і обчислюваних полів див. в статті Створення простого вибіркового запиту.
Використання функції IIf у коді VBA
Примітка.: У наведених нижче прикладах показано використання цієї функції в модулі Visual Basic for Applications (VBA). Щоб отримати докладні відомості про використання модуля VBA, клацніть пункт Довідник розробника в розкривному списку поряд із полем Пошук і введіть у поле пошуку принаймні один термін.
У цьому прикладі функція IIfвикористовується для обчислення параметра TestMe у процедурі CheckIt й повертає слово "Великий", якщо величина перевищує значення "1000", у іншому випадку вона повертає слово "Маленький".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
Додаткові приклади
-
Вираз: =IIf([Код аеропорту]="ORD";"Чикаго";IIf([Код аеропорту]="ATL";"Атланта",IIf([Код аеропорту]="SEA","Сіетл";"Інше")))Результат: Якщо [Код_аеропорту] – "ORD", повертається значення "Чикаго". У іншому випадку, якщо [Код_аеропорту] – "ATL", повертається значення "Атланта". У іншому випадку, якщо [Код_аеропорту] – "SEA", повертається "Сієтл". У іншому випадку повертається значення "Інше".
-
Вираз: =IIf([Дата_доставки]<Date();"Доставлено",IIf([Дата_доставки]=Date();"Доставка сьогодні";"Не доставлено"))Результат: Якщо [Дата доставки] передує сьогоднішній даті, повертається значення "Доставлено". У іншому випадку, якщо [Дата_доставки] відповідає сьогоднішній даті, повертається значення "Доставляється сьогодні". У іншому випадку повертається значення "Не доставлено".
-
Вираз: =IIf([Дата придбання]<#01.01.2008#,"Стара","Нова")Результат: Якщо [Дата придбання] передує 01.01.2008, повертається значення "Стара". У іншому випадку повертається значення "Новий".
-
Вираз: =IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3);"OK","Out of calibration")Result: Якщо [Вольт] – від 12 до 15, а [Ампер] – від 0,25 до 0,3, повертається значення "OK". У іншому випадку повертається значення "Не відкалібровано".
-
Вираз: =IIf(Eval([Країна]In ("Канада";"США";"Мексика"));"Північна Америка","Інша")Результат: Якщо [Країна] – це "Канада", "США" або "Мексика", повертається значення "Північна Америка". У іншому випадку повертається значення "Інше".
-
Вираз: =IIf([Середнє]>=90;"А";IIf([Середнє]>=80;"B";IIf([Середнє]>=70;"В";IIf([Середнє]>=60;"D";"F")))))Результат: Якщо [Середнє] – це 90 або більше, повертається значення "A". У іншому випадку, якщо [Середнє] – це 80 або більше, повертається значення "B". У іншому випадку, якщо [Середнє] – це 70 або більше, повертається значення "C". У іншому випадку, якщо [Середнє] – це 60 або більше, повертається значення "D". У іншому випадку повертається значення "F".
Примітка.: Якщо функція IIf використовується під час створення обчислюваних полів у запиті, замініть знак рівності (=) на псевдонім поля й двокрапку (:). Наприклад, Стан: IIf([Дата_доставки]<Date(),"Доставлено",IIf([Дата_доставки]=Date(),"Доставка сьогодні","Не доставлено"))