Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Возвращает одну из двух частей в зависимости от оценки выражение.

IIf можно использовать везде, где можно использовать выражения. Используйте IIf , чтобы определить, является ли другое выражение истинным или ложным. Если выражение имеет значение true, функция IIf возвращает одно значение; Если значение равно false, функция IIf возвращает другое значение. Вы указываете значения, возвращаемые IIf .

Некоторые примеры

Синтаксис

IIf ( expr , truepart , falsepart )

Функция IIf имеет аргументы, указанные ниже.

Аргумент

Описание

выражение

Обязательный аргумент. Выражение, которое требуется вычислить.

Если_истина

Обязательный аргумент. Значение или выражение возвращается, если expr имеет значение True.

Если_ложь

Обязательный аргумент. Значение или выражение возвращается, если expr имеет значение False.

Замечания

IIf всегда вычисляет как truepart , так и falsepart, хотя возвращает только один из них. Из-за этого следует watch нежелательных побочных эффектов. Например, если вычисление falsepart приводит к ошибке деления на ноль, возникает ошибка, даже если expr имеет значение True.

Примеры

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

=IIf([CountryRegion]="Italy", "Итальянский", "Другой язык")

При открытии формы в представлении формы элемент управления отображает значение "Итальянский", если значением для CountryRegion является Италия, и "Другой язык", когда CountryRegion — любое другое значение.

Использование IIf в сложных выражениях    Любое выражение можно использовать в качестве любой части оператора IIf . Вы также можете "вложенные" выражения IIf , что позволяет оценить ряд зависимых выражений. Чтобы продолжить работу с предыдущим примером, может потребоваться протестировать несколько разных значений CountryRegion, а затем отобразить соответствующий язык в зависимости от того, какое значение существует:

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

Текст "Некоторый другой язык" является аргументом falsepart внутренней функции IIf . Так как каждая вложенная функция IIf является аргументом falsepart функции IIf , содержащей ее, текст "Некоторый другой язык" возвращается только в том случае, если все аргументы expr всех функций IIf имеют значение False.

В другом примере предположим, что вы работаете в библиотеке. База данных библиотеки содержит таблицу с именем Check Outs, которая содержит поле с именем Дата выполнения, содержащее дату возврата конкретной книги. Вы можете создать форму, указывающую состояние извлеченного элемента в элементе управления, используя функцию IIf в свойстве Control Source этого элемента управления следующим образом:

=IIf([Дата окончания срока]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Еще не просроченный"))

При открытии формы в представлении формы элемент управления отображает значение "OVERDUE", если значение "Дата выполнения" меньше текущей даты, "Срок выполнения сегодня", если оно равно текущей дате, и "Еще не запланировано" в противном случае.

Примечание: Чтобы использовать логические операторы, такие как "And" или "Or", в аргументе expr функции IIf , необходимо заключить логическое выражение в функцию Eval . См. пример таблицы ниже.

Использование IIf в запросе    

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

Язык: IIf([CountryRegion]="Italy", "Итальянский", "Другой язык")

В этом случае "Language:" — это псевдоним поля.

Дополнительные сведения о создании запросов и вычисляемых полей см. в статье Создание простого запроса выбора.

Использование IIf в коде VBA    

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В этом примере функция IIf используется для вычисления параметра TestMe процедуры CheckIt и возвращает слово "Large", если сумма превышает 1000; в противном случае возвращается слово "Small".

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

Дополнительные примеры

Expression

Результаты

=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL", "Атланта",IIf([AirportCode]="SEA", "Seattle","Other")))

Если параметр [AirportCode] имеет значение ORD, верните значение "Chicago". В противном случае, если параметр [AirportCode] имеет значение ATL, верните значение "Атланта". В противном случае, если параметр [AirportCode] имеет значение SEA, верните значение Seattle. В противном случае верните значение "Other".

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

Если [ShipDate] находится до сегодняшней даты, верните значение "Отправлено". В противном случае, если значение [ShipDate] равно сегодняшней дате, возвращается значение "Доставка сегодня". В противном случае верните "Unshipped".

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

Если [PurchaseDate] имеет значение до 01.01.2008, возвращается значение "Old". В противном случае верните "Создать".

=IIf(Eval([Volts] От 12 до 15 и [amps] от 0,25 до 0,3), "ОК", "Вне калибровки")

Если значение [Volts] находится в диапазоне от 12 до 15, а значение [amps] — от 0,25 до 0,3, возвращается значение "ОК". В противном случае возвращается значение "Нет калибровки".

=IIf(Eval([CountryRegion] In ("Canada","США","Mexico")),"Северная Америка","Other")

Если параметр [CountryRegion] имеет значение "Canada", "США" или "Mexico", верните "Северная Америка". В противном случае верните значение "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"))

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.