Возвращает одну из двух частей в зависимости от вычисленного значения выражения.
Выражения можно использовать IIf везде, где можно использовать выражения. Используется IIf для определения того, является ли другое выражение истинным или ложным. Если выражение истинно, IIf возвращается одно значение. Если он имеет значение ЛОЖЬ, IIf возвращается другое значение. Вы указываете возвращаемые значения.IIf
Синтаксис
IIf(expr, truepart, falsepart)
Аргументы функции IIf описаны ниже.
| Аргумент | Описание |
|---|---|
expr |
Обязательный аргумент. Выражение, которое требуется вычислить. |
truepart |
— обязательный аргумент. Значение или выражение, возвращаемое в качестве exprTrue. |
falsepart |
— обязательный аргумент. Значение или выражение, возвращаемое в качестве exprFalse. |
Замечания
IIf всегда вычисляет оба truepart и falsepart, даже если возвращает только одно из них. Из-за такого поведения следите за нежелательными побочными эффектами. Например, если оценка falsepart результатов дает ошибку деления на ноль, ошибка возникает, даже если expr она равна True.
Примеры
Использование IIf в форме или отчете
Предположим, существует таблица Customers , содержащая поле с именем CountryRegion. В форме необходимо указать, является ли итальянский языком контакта. Вы можете добавить элемент управления и использовать IIf его в свойстве Control Source :
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
При открытии формы в представлении формы элемент управления отображается Italian всякий раз, когда значение для CountryRegion .Italy Он отображается 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 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 Or , в expr аргументе IIf функции, необходимо заключить логическое выражение в функцию Eval . См. пример таблицы ниже.
Использование IIf в запросе
Эта IIf функция часто используется для создания вычисляемых полей в запросах. Синтаксис тот же, за исключением того, что в запросе выражение должно предваряться псевдонимом поля и двоеточием (:) вместо знака равенства (=). Чтобы использовать приведенный выше пример, введите в строке "Поле " бланка запроса следующую команду:
Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")
В данном случае Language: — псевдоним поля.
Дополнительные сведения о создании запросов и вычисляемых полей см. в статье Создание простого запроса на выборку.
Использование IIf в коде VBA
Примечание
В следующих примерах показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Developer Reference (Справочник разработчика ) в раскрывающемся списке рядом с Search (Поиск) и введите один или несколько терминов в поле поиска.
В этом примере функция используется 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", return"Chicago". В противном случае, если[AirportCode]есть"ATL", возвращает"Atlanta". В противном случае, если[AirportCode]есть"SEA", возвращает"Seattle". В противном случае возвращается"Other".Выражение:
=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))Результат: если
[ShipDate]раньше текущей даты, вернуть"Shipped". В противном случае, если[ShipDate]равна текущей дате, вернуть"Shipping today". В противном случае возвращается"Unshipped".Выражение:
=IIf([PurchaseDate]<#1/1/2008#,"Old","New")Результат: Если
[PurchaseDate]раньше1/1/2008, возвращает"Old". В противном случае возвращается"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". В противном случае возвращается"Out of calibration".Выражение:
=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")Результат: Если
[CountryRegion],"Canada""USA", или"Mexico", return"North America". В противном случае возвращается"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". В противном случае возвращается"F".
Примечание
Если эта функция используется IIf для создания вычисляемого поля в запросе, замените знак равенства (=) псевдонимом поля и двоеточием (:). Например, Status: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped")).