Връща една от две части в зависимост от оценката на израз.
Можете да използвате IIf навсякъде, където можете да използвате изрази. Можете да използвате IIf, за да определите дали друг израз е true, или false. Ако изразът е верен, IIf връща една стойност; ако е невярно, IIf връща друго. Задавате стойностите, които IIf връща.
Синтаксис
IIf ( израз ; част истина ; част неистина )
Синтаксисът на функцията IIf има следните аргументи:
Аргумент |
Описание |
expr |
Задължителен. Израз, който искате да оцените. |
част истина |
Задължително. Стойност или израз, върнати, ако израз е True. |
част неистина |
Задължително. Стойност или израз, върнати, ако израз е False. |
Забележки
IАко винаги оценява част истина и част false, въпреки че връща само една от тях. Поради това трябва да внимавате за нежелани странични ефекти. Ако например изчисляването на част false води до деление на нула грешка, възниква грешка дори ако израз е True.
Примери
Използване на IIf във формуляр или отчет Да предположим, че имате таблица "Клиенти", която съдържа поле с име "СтранаРегион". Във формуляр искате да укажете дали италианският е първият език на контакта. Можете да добавите контрола и да използвате IIf в нейното свойство Източник за контролата , ето така:
=IIf([СтранаРегион]="Италия"; "Италиански"; "Друг език")
Когато отворите формуляра в изглед за формуляр, контролата показва "Италиански" всеки път, когато стойността за СтранаРегион е Италия, и "Някой друг език", когато "СтранаРегион" е друга стойност.
Използване на IIf в сложни изрази Можете да използвате всеки израз като всяка част от инструкция IIf . Можете също да "влагате" IIf изрази, което ви позволява да оценявате последователност от зависими изрази. За да продължите с предишния пример, можете да тествате за няколко различни стойности на CountryRegion и след това да покажете съответния език в зависимост от това коя стойност съществува:
=IIf([СтранаРегион]="Италия"; "Италиански"; IIf([СтранаРегион]="Франция"; "Френски"; IIf([СтранаРегион]="Германия"; "Немски"; "Друг език")))
Текстът "Някой друг език" е аргументът falsepart на най-вътрешната функция IIf . Тъй като всяка вложена функция IIf е аргументът falsepart на функцията IIf , която я съдържа, текстът "Някой друг език" се връща само ако всички аргументи израз на всички функции IIf са оценени като False.
Да предположим например, че работите в библиотека. Базата данни на библиотеката има таблица с име Извлечения, която съдържа поле с име Краен срок, съдържащо датата, на която трябва да се върне определена книга. Можете да създадете формуляр, който показва състоянието на извлечен елемент в контрола с помощта на функцията IIf в свойството Източник за контролата , ето така:
=IIf([Краен срок]<Date();"ПРОСрочена";IIf([Краен срок]=Date();"Краен срок днес","Още Не е дължим"))
Когато отворите формуляра в изглед за формуляр, контролата показва "ПРОСРОЧЕНО", ако стойността на Краен срок е по-малка от текущата дата, "Краен срок днес", ако е равна на текущата дата, и "Още не е краен".
Забележка: За да използвате логически оператори като "And" или "Or" в аргумента expr на функцията IIf, трябва да оградите логическия израз във функцията Eval. Вижте примерната таблица, която следва.
Използване на IIf в заявка
Функцията IIf често се използва за създаване на изчисляеми полета в заявки. Синтаксисът е същият, с изключение на това, че в заявка трябва да поставите пред израза псевдоним на поле и двоеточие (:) вместо знак за равенство (=). За да използвате предишния пример, трябва да въведете следното в реда Поле на мрежата на заявката за проектиране:
Език: IIf([СтранаРегион]="Италия"; "Италиански"; "Друг език")
В този случай "Език:" е псевдонимът на полето.
За повече информация относно създаването на заявки и изчисляеми полета вж. статията Създаване на проста заявка за избиране.
Използване на IIf във VBA код
Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.
Този пример използва функцията IIf , за да оцени параметъра TestMe на процедурата CheckIt и връща думата "Large", ако сумата е по-голяма от 1000; в противен случай връща думата "Малък".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Още примери
Израз |
Резултати |
=IIf([AirportCode]="ORD","Чикаго",IIf([AirportCode]="ATL","Атланта",IIf([AirportCode]="SEA","Сиатъл";"Други"))) |
Ако [AirportCode] е "ORD", върнете "Чикаго". В противен случай, ако [AirportCode] е "ATL", върнете "Атланта". В противен случай, ако [AirportCode] е "SEA", върнете "Сиатъл". В противен случай върнете "Други". |
=IIf([Дата на експедиране]<Date();"Shipped",IIf([ShipDate]=Date();"Shipping today","Unshipped")) |
Ако [Дата на експедиране] е преди днешната дата, върнете "Изпратено". В противен случай, ако [Дата на експедиране] е равно на днешната дата, върнете "Доставка днес". В противен случай връща "Неекспедиране". |
=IIf([Дата на покупка]<#1.1.2008#;"Стара","Нова") |
Ако [Дата на покупка] е преди 1/1/2008 г., върнете "Стара". В противен случай върнете "Създай". |
=IIf(Eval([Волтове] Between 12 And 15 And [Amps] Between 0.25 And 0.3);"OK","Извън калибриране") |
Ако [Волта] е между 12 и 15 и [ампера] е между 0,25 и 0,3, върнете "OK". В противен случай връща "Извън калибриране". |
=IIf(Eval([СтранаРегион] In ("Канада";"САЩ";"Мексико"));"Северна Америка";"Други") |
Ако [СтранаРегион] е "Канада", "САЩ" или "Мексико", върнете "Северна Америка". В противен случай върнете "Други". |
=IIf([Средно]>=90;"A";IIf([Средно]>=80;"B",IIf([Средно]>=70;"C";IIf([Средно]>=60;"D";"F")))) |
Ако [Средно] е 90 или по-голямо, върнете "A". В противен случай, ако [Средно] е 80 или по-голямо, върнете "B". В противен случай, ако [Средно] е 70 или по-голямо, се връща "С". В противен случай, ако [Средно] е 60 или по-голямо, върнете "D". В противен случай се връща "F". |
Забележка: Ако използвате функцията IIf , за да създадете изчисляемо поле в заявка, заместете знака за равенство (=) с псевдоним на поле и двоеточие (:). Например Състояние: IIf([Дата на експедиране]<Date();"Дата на експедиране";IIf([ДатаЕкспедиране]=Date();"Доставка днес";"Неекспедирано"))