Повертає одну з двох частин, залежно від результату обчислення виразу.
Функцію IIf можна використовувати скрізь, де можна використовувати вирази. Функцію IIf можна використати, щоб визначити істинність або хибність іншого виразу. Якщо значення виразу – True, то функція IIf повертає одне значення, а якщо значення виразу – False, функція IIf повертає інше значення. Значення, які повертає функція IIf, визначаєте ви.
Синтаксис
IIf(вираз;якщо_істина;якщо_хибність)
Синтаксис функції IIf має такі аргументи:
| Аргумент | Опис |
|---|---|
| expr | Обов’язковий аргумент. Вираз, який потрібно обчислити. |
| якщо_істина | — обов’язковий аргумент. Значення або вираз, які повертаються, якщо виразмає значення True. |
| якщо_хибність | — обов’язковий аргумент. Значення або вираз, які повертаються, якщо виразмає значення False(хибність). |
Примітки
Функція IIf завжди обчислює значення truepart і falsepart, навіть якщо повертає лише одну з них. Тому потрібно зважати на небажані побічні ефекти. Наприклад, якщо під час обчислення якщо значення якщо_хибність призводить до помилки ділення на нуль, стається помилка, навіть якщо виразмає значення 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(Обчислення([Вольт] між 12 та 15 й [Ампер] між 0,25 та 0,3),"OK","Не відкалібровано")
Результат:
Якщо [Вольт] між 12 та 15 й [Ампер] між 0,25 та 0,3, повертається значення "OK". У іншому випадку повертається значення "Не відкалібровано".
Вираз:
=IIf(Обчислення([Країна] у ("Канада","США","Мексика")),"Північна Америка","Інше")
Результат:
Якщо [Країна] – це "Канада","США" або "Мексика", повертається значення "Північна Америка". У іншому випадку повертається значення "Інше".
Вираз:
=IIf([Середнє]>=90;"А";IIf([Середнє]>=80;"B";IIf([Середнє]>=70;"C";IIf([Середнє]>=60;"D";"F")))))
Результат:
Якщо [Середнє] – це 90 або більше, повертається значення "A". У іншому випадку, якщо [Середнє] – це 80 або більше, повертається значення "B". У іншому випадку, якщо [Середнє] – це 70 або більше, повертається значення "C". У іншому випадку, якщо [Середнє] – це 60 або більше, повертається значення "D". У іншому випадку повертається значення "F".
Примітка.
Якщо для створення обчислюваного поля в запиті використовується функція IIf , замініть знак рівності (=) на псевдонім поля та двокрапку (:). Наприклад, стан: IIf([Дата_доставки]<Date();"Доставлено",IIf([Дата_доставки]=Date();"Доставка сьогодні";"Не доставлено"))