Повертає одну з двох частин, залежно від результату обчислення виразу.
Ви можете використовувати IIf будь-які пристрої, де можна використовувати вирази. Використовується IIf для визначення істинності або хибності іншого виразу. Якщо значення виразу – True, IIf повертає одне значення. Якщо значення хибний, IIf повертає інше значення. Ви вказуєте значення, які IIf повертає.
Синтаксис
IIf(expr, truepart, falsepart)
Синтаксис IIf цих функцій має такі аргументи:
| Аргумент | Опис |
|---|---|
expr |
Обов’язковий. Вираз, який потрібно обчислити. |
truepart |
— обов’язковий аргумент. Значення або вираз, що повертається, якщо expr дорівнює True. |
falsepart |
— обов’язковий аргумент. Значення або вираз, що повертається, якщо expr дорівнює False. |
Примітки
IIf завжди оцінює і те, і truepartfalsepart, навіть якщо повертає лише одне з них. Через таку поведінку стежте за небажаними побічними ефектами. Наприклад, якщо результат обчислення falsepart призводить до помилки ділення на нуль, помилка виникає, навіть якщо expr це True.
Приклади
Використання IIf у формі або звіті
Припустімо, що у вас є Customers таблиця, яка містить поле з іменем CountryRegion. У формі потрібно показати, чи є італійська мовою для контакту. Можна додати елемент керування та використовувати IIf в його Control Source властивості:
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
Якщо відкрити форму в поданні форми, елемент керування відображатиметься Italian щоразу після введення значення .CountryRegionItaly Він відображається 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 повертається лише тоді, коли всі expr аргументи IIf функції обчислюються як False.
У іншому прикладі робота проводиться, наприклад у бібліотеці. У базі даних бібліотеки міститься таблиця з іменем Check OutsDue 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 навпаки.
Примітка.
Щоб використовувати логічні оператори, такі як AndOr or в expr аргументі IIf функції, необхідно вкласти логічний вираз у функцію 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
Додаткові приклади
Вираз:
=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))Результат: Якщо
[AirportCode]дорівнює"ORD", повертається"Chicago". У іншому випадку, якщо[AirportCode]є"ATL", повертається"Atlanta". У іншому випадку, якщо[AirportCode]є"SEA", повертається"Seattle". В іншому випадку return"Other".Вираз:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Результат: Якщо
[ShipDate]дата раніша за сьогоднішню, повернення"Shipped". У іншому випадку, якщо[ShipDate]дорівнює сьогоднішній даті, повертається"Shipping today"значення . В іншому випадку return"Unshipped".Вираз:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Результат: Якщо
[PurchaseDate]раніша ,1/1/2008повертається"Old". В іншому випадку return"New".Вираз:
=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"значення . В іншому випадку return"Out of calibration".Вираз:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Результат: Якщо дорівнює , , або
"Mexico", повертає"North America"значення ."USA""Canada"[CountryRegion]В іншому випадку return"Other".Вираз:
=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". В іншому випадку return"F".
Примітка.
Якщо функція використовується IIf для створення обчислюваного поля в запиті, замініть знак рівності (=) на псевдонім поля та двокрапку (:). Наприклад, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).