Връща една от две части в зависимост от оценката на израз.
Можете да използвате IIf навсякъде, където можете да използвате изрази. Използвайте IIf , за да определите дали друг израз е верен, или неверен. Ако изразът е истина, IIf връща една стойност. Ако е false, IIf връща друга стойност. Можете да зададете стойностите, които IIf връщат.
Синтаксис
IIf(expr, truepart, falsepart)
Синтаксисът IIf на функцията има следните аргументи:
| Аргумент | Описание |
|---|---|
expr |
Задължително. Израз, който искате да оцените. |
truepart |
Задължително. Стойност или израз се връщат, ако expr е True. |
falsepart |
Задължително. Стойност или израз се връщат, ако expr е False. |
Забележки
IIf Винаги изчислява и двете truepart And 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, което съдържа датата, на която трябва да се извърши определена книга. Можете да създадете формуляр, който показва състоянието на извлечен елемент в контрола, с помощта на функцията в свойството IIfControl Source на тази контрола:
=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))
Когато отворите формуляра в изглед на формуляр, контролата показва OVERDUE дали стойността на Due Date е по-малка от текущата дата, Due today дали е равна на текущата дата и Not Yet Due в противен случай.
Забележка
За да използвате логически оператори, като например And в аргумента Orexpr на 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". В противен случай се връщане"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, return"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")).