Access iif: Функция IIf — Access
Функция IIf — Access
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Возвращает одну из двух частей в зависимости от оценки выражение.
Вы можете использовать функцию IIf везде, где можно использовать выражения. IIf используется для определения, является ли другое выражение истиной или ложью. Если выражение истинно, IIf возвращает одно значение; если оно ложно, IIf возвращает другое значение. Значения, возвращаемые IIf, устанавливаете вы.
Некоторые примеры
Синтаксис
IIf
(
выражение
,
если_истина
,
если_ложь
)
Функция IIf имеет аргументы, указанные ниже.
|
|
---|---|
|
Обязательный аргумент. Выражение, которое требуется оценить.
|
|
Обязательный аргумент. Значение или выражение, возвращаемое, если значение аргумента выражение является истинным.
|
|
Обязательный аргумент. Значение или выражение, возвращаемое, если значение аргумента выражение является ложным.
|
Замечания
IIf всегда оценивает обе части если_истина и если_ложь, хотя и возвращает только одну из частей. Обратите на это внимание, чтобы избежать нежелательных последствий. Например, если при оценивании части если_ложь приходится делить на ноль, возникает ошибка, даже если выражение является истинным.
Примеры
Использование IIf в форме или отчете Предположим, что у вас есть таблица клиентов, который содержит поле с именем Страна или регион. В форме нужно указывают, является ли итальянский язык первый контакт. Можно добавить элемент управления и использование функции IIf в свойстве Control Source следующим образом:
=IIf([Страна или регион]=»Италия», «Итальянский», «Другой язык»)
Когда вы открываете форму в режиме формы, элемент управления отображает «Итальянский», если в поле «Страна или регион» указана Италия, и «Другой язык», если в поле «Страна или регион» указано другое значение.
Использование IIf в сложных выражениях Любое выражение можно использовать как любой части инструкцию IIf . Можно также «вложить» IIf выражения, позволяя вычисления ряда зависимых выражения. Чтобы продолжить работу в предыдущем примере, может потребоваться для нескольких различных значений Страна или регион, а затем отобразите нужный язык в зависимости от того, что существует значение:
=IIf([Страна или регион]=»Италия», «Итальянский», IIf([Страна или регион]=»Франция», «Французский», IIf([Страна или регион]=»Германия», «Немецкий», «Другой язык»)))
Текст «Другой язык» является аргументом если_ложь внутренней функции IIf. Поскольку каждая вложенная функция IIf является аргументом если_ложь функции IIf, которая ее содержит, текст «Другой язык» возвращается только в случае, если все аргументы выражение всех функций IIf оцениваются как ложные.
Приведем другой пример. Предположим, что вы работаете в библиотеке. В базе данных библиотеки есть таблица под названием «Выданные книги», которая содержит поле «Срок» с датой, когда нужно вернуть определенную книгу. Вы можете создать форму, которая указывает состояние выданной книги в элементе управления, с помощью функции IIf в свойстве Данные, например:
=IIf([Срок]<Date(),»ПРОСРОЧЕНО»,IIf([Срок]=Date(),»Срок истекает сегодня»,»Срок еще не истек»))
Когда вы открываете форму в режиме формы, элемент управления отображает «ПРОСРОЧЕНО», если значение «Срок» меньше, чем текущая дата, «Срок истекает сегодня», если оно равно текущей дате, или «Срок еще не истек» в другом случае.
Примечание: Чтобы использовать логические операторы, такие как «И» или «Или» в аргументе выражение функцию IIf , необходимо заключить логическое выражение в функция Eval . Пример таблицы, следующий за см.
Использование функции IIf в запросе
Создавать вычисляемые поля в запросах часто используется функция IIf . Синтаксис не изменяется, за исключением в запросе, необходимо введите перед выражением псевдоним поля и двоеточие (:) вместо знак равенства (=). Чтобы использовать в предыдущем примере, необходимо ввести в строку поле бланка запроса следующее:
Язык: IIf([Страна или регион]=»Италия», «Итальянский», «Другой язык»)
В этом случае «Язык:» — это псевдоним поля.
Дополнительные сведения о создании запросов и вычисляемых полей читайте в статье Создание простого запроса на выборку.
Использование функции 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
Другие примеры
|
|
---|---|
=IIf([КодАэропорта]=»ORD»,»Чикаго»,IIf([КодАэропорта]=»ATL»,»Атланта»,IIf([КодАэропорта]=»SEA»,»Сиэтл»,»Другой»)))
|
Если значение [КодАэропорта] — «ORD», возвращается «Чикаго». Если значение [КодАэропорта] — «ATL», возвращается «Атланта». Если значение [КодАэропорта] — «SEA», возвращается «Сиэтл». В противном случае возвращается «Другое».
|
=IIf([ДатаДоставки]<Date(),»Доставлено»,IIf([ДатаДоставки]=Date(),»Доставка сегодня»,»Не отправлено»))
|
Если [ДатаДоставки] раньше сегодняшней даты, возвращается «Доставлено». Если [ДатаДоставки] равна сегодняшней дате, возвращается «Доставка сегодня». В противном случае возвращается «Не отправлено».
|
=IIf([ДатаПокупки]<#1/1/2008#,»Старая»,»Новая»)
|
Если [ДатаПокупки] раньше 1/1/2008, возвращается «Старая». В противном случае возвращается «Новая».
|
=IIf(Eval([Вольт] Between 12 And 15 And [Ампер] Between 0.25 And 0.3),»ОК»,»Неоткалибровано»)
|
Если значение [Вольт] между 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 или больше, возвращается «C». Если [Среднее] — 60 или больше, возвращается «D». В противном случае возвращается «F».
|
Примечание: Если вы используете функцию IIf для создания вычисляемого поля в запросе, замените знак равенства (=) псевдоним поля и двоеточие (:). Например Состояние: IIf ([ShipDate] < Дата (), «Отгруженные», IIf ([ShipDate] = (дата), «Доставки сегодня», «Unshipped»))
Функция IIF в языке T-SQL – описание и примеры | Info-Comp.ru
Привет! В этой заметке я расскажу о функции IIF языка T-SQL, которая предназначена для упрощения написания условных конструкций с использованием всем известного выражения CASE или операторов IF…ELSE…THEN.
Функция IIF языка T-SQL
IIF – логическая функция языка T-SQL, которая возвращает одно из двух значений в зависимости от результата логического выражения. Появилась данная функция в 2012 версии SQL Server.
Синтаксис IIF
IIF ( boolean_expression, true_value, false_value )
где,
- boolean_expression – логическое выражение. Если указано не логическое выражение, то возникнет ошибка синтаксиса;
- true_value – значение, которое будет возвращено, если boolean_expression имеет значение TRUE;
- false_value – значение, которое будет возвращено, если boolean_expression имеет значение FALSE.
Таким образом, функция IIF имеет 3 параметра, в первом параметре указывается логическое выражение, во втором мы пишем значение, которое будет возвращено, если логическое выражение вернет TRUE, в третьем — значение, которое будет возвращено, если логическое выражение вернет FALSE.
Особенности работы функции IIF
true_value и false_value могут иметь разные типы данных, при этом функция IIF вернет результат с тем типом данных, который будет иметь наивысший приоритет.
Если рассматривать внутреннюю работу функции IIF, то все действия в ней приводятся к выражению CASE и, таким образом, функция IIF является абсолютным эквивалентом выражения CASE, а создана и применяется она для более быстрого и простого написания логических выражений с использованием CASE.
Параметры true_value и false_value не могут одновременно содержать значения NULL, как минимум одно из этих значений должно отличаться от NULL, в противном случае, т.е. если указать NULL для обоих этих параметров, мы получим примерно следующую ошибку
Сообщение 8133, уровень 16, состояние 1, строка 1
Как минимум одно из результирующих выражений в спецификации CASE должно отличаться от константы NULL.
Заметка! Для комплексного изучения языка SQL и T-SQL рекомендую посмотреть мои видеокурсы по T-SQL, которые помогут Вам «с нуля» научиться работать с SQL и программировать на T-SQL в Microsoft SQL Server.
Примеры использования функции IIF в T-SQL
Сейчас давайте рассмотрим несколько примеров работы функции IIF.
Пример 1 – Простое использование функции IIF
В этом примере в качестве логического выражения мы укажем 1 < 2, т.е. спросим 1 меньше двух, в результате мы получим значение второго параметра, в нашем случае TRUE, так как очевидно, что наше логическое выражение возвращает истину, т.е. 1 действительно меньше 2.
SELECT IIF(1 < 2, 'TRUE', 'FALSE') AS Result;
Однако, стоит нам только изменить логическое выражение, к примеру мы укажем 1 > 2, то в качестве результата мы получим значение третьего параметра, т.е. FALSE, так как 1 никак не может быть больше 2.
SELECT IIF(1 > 2, 'TRUE', 'FALSE') AS Result;
Пример 2 – Использование функции IIF с переменными
Во всех параметрах функции IIF можно использовать переменные, в следующем примере в функцию IIF подставляются целочисленные переменные.
DECLARE @A INT = 5, @B INT = 3, @true_value INT = 1, @false_value INT = 0; SELECT IIF ( @A >= @B, @true_value, @false_value ) AS Result;
А в данном запросе мы подставляем уже текстовые значения.
DECLARE @A INT = 5, @B INT = 3, @true_value VARCHAR(10) = 'A больше B', @false_value VARCHAR(10) = 'A меньше B'; SELECT IIF ( @A > @B, @true_value, @false_value ) AS Result;
Пример 3 – Использование функции IIF с более сложным логическим выражением
В качестве первого параметра, т.е. логического выражения, можно указывать более сложные выражения, которые будут содержать различные вычисления. Например, в следующем примере мы проверяем не просто значения двух переменных, а результат их перемножения, в данном случае мы спрашиваем, будет ли он больше 10.
DECLARE @A INT = 5, @B INT = 3, @true_value INT = 1, @false_value INT = 0; SELECT IIF ( @A * @B > 10, @true_value, @false_value ) AS Result;
Пример 4 – Вложенный IIF
Функцию IIF можно использовать в выражении внутри другой функции IIF. Например, в следующем SQL запросе мы хотим узнать, к какой категории относится товар по его наименованию. Для этого мы сначала сравниваем значение наименования товара с одним текстовым значением, а затем, в зависимости от результата, продолжаем сравнивать, но только уже с другим текстовым значением.
DECLARE @ProductName VARCHAR(100) = 'Монитор'; SELECT IIF ( @ProductName = 'Смартфон', 'Мобильные устройства', IIF( @ProductName = 'Монитор', 'Комплектующие ПК', 'Без категории') ) AS Result;
В данном случае первый IIF у нас вернул FALSE, поэтому мы перешли к третьему параметру, в котором у нас указан еще один IIF, а он в свою очередь вернул TRUE, поэтому в результате мы получили значение «Комплектующие ПК».
Однако, если указать в переменной значение, которое не будет соответствовать нужной нам категории, мы получим значение «Без категории».
DECLARE @ProductName VARCHAR(100) = 'Стол'; SELECT IIF ( @ProductName = 'Смартфон', 'Мобильные устройства', IIF( @ProductName = 'Монитор', 'Комплектующие ПК', 'Без категории') ) AS Result;
Пример 5 – Использование функции IIF в запросе к таблице
Функцию IIF так же, как и другие функции, можно использовать в обычном SQL запросе к таблице или любому другому табличному выражению. Иными словами, в качестве параметров в функцию IIF можно передавать названия столбцов.
В этом примере мы на основе категории товара увеличиваем его цену.
SELECT Category, ProductName, Price, Price + IIF(Category = 1, 10, 15) AS TotalPrice FROM Goods;
На сегодня это все, мы рассмотрели функцию IIF языка T-SQL, которая упрощает написание различных условных конструкций с использованием CASE. Надеюсь, материал был Вам полезен, до новых встреч на сайте Info-Comp.ru!
НравитсяНе нравится
MS Access — встроенные функции
В этой главе мы будем работать со встроенными функциями. В Access доступно около сотни встроенных функций, и практически невозможно охватить каждую из них. В этой главе мы расскажем об основной структуре, синтаксисе и использовании некоторых из наиболее популярных функций, а также о подводных камнях, чтобы вы могли самостоятельно изучить некоторые другие функции.
функции
Функция — это процедура VBA, которая выполняет задачу или вычисление и возвращает результат. Функции обычно можно использовать в запросах, но есть и другие места, где вы можете использовать функции.
Вы можете использовать функции в свойствах таблицы, например, если вы хотите указать значение по умолчанию для поля даты / времени, вы можете использовать функцию date или Now, чтобы вызвать информацию о текущей дате / времени из вашей системы, и ввести это значение автоматически.
Вы также можете использовать функции в выражении при создании вычисляемого поля или использовать функции внутри формы или элементов управления отчетом. Вы можете использовать функции даже в макросах.
Функции могут быть довольно простыми, не требующими вызова другой информации, или просто ссылаться на одно поле из таблицы или запроса.
С другой стороны, они также могут быть довольно сложными, с несколькими аргументами, ссылками на поля и даже другими функциями, вложенными в другую функцию.
Вы можете использовать функции в свойствах таблицы, например, если вы хотите указать значение по умолчанию для поля даты / времени, вы можете использовать функцию date или Now, чтобы вызвать информацию о текущей дате / времени из вашей системы, и ввести это значение автоматически.
Вы также можете использовать функции в выражении при создании вычисляемого поля или использовать функции внутри формы или элементов управления отчетом. Вы можете использовать функции даже в макросах.
Функции могут быть довольно простыми, не требующими вызова другой информации, или просто ссылаться на одно поле из таблицы или запроса.
С другой стороны, они также могут быть довольно сложными, с несколькими аргументами, ссылками на поля и даже другими функциями, вложенными в другую функцию.
Давайте теперь посмотрим на некоторые примеры использования встроенных функций.
Функции даты и времени
Давайте теперь поймем функции даты и времени —
Функция Date () предназначена для возврата текущей системной даты. Эта функция не требует никаких аргументов функции или дополнительной информации. Все, что вам нужно сделать, это написать имя функции, а также открыть и закрыть скобки.
Есть две очень похожие встроенные функции Time () и Now ().
Функция Time () возвращает только текущее системное время, а функция Now () возвращает как текущую системную дату, так и время.
В зависимости от данных, которые вы хотите отслеживать, или хранить, или запрашивать, у вас есть три встроенные, простые в использовании функции, которые помогут с этой задачей.
Функция Date () предназначена для возврата текущей системной даты. Эта функция не требует никаких аргументов функции или дополнительной информации. Все, что вам нужно сделать, это написать имя функции, а также открыть и закрыть скобки.
Есть две очень похожие встроенные функции Time () и Now ().
Функция Time () возвращает только текущее системное время, а функция Now () возвращает как текущую системную дату, так и время.
В зависимости от данных, которые вы хотите отслеживать, или хранить, или запрашивать, у вас есть три встроенные, простые в использовании функции, которые помогут с этой задачей.
Теперь давайте откроем вашу базу данных и создадим новый запрос, используя дизайн запроса, и добавим tblProjects и tblTasks.
Добавьте ProjectName из tblProjects и TaskTitle, StartDate и DueDate из tblTasks и выполните свой запрос.
Теперь вы можете увидеть все различные задачи из всех проектов. Если вы хотите просмотреть задачи проекта, которые выполняются по состоянию на сегодняшнюю дату, то мы должны указать критерий, используя функцию Date () для просмотра проектов, которые начинаются в или после сегодняшней даты.
Давайте теперь укажем критерии под StartDate.
Критерий начинается с оператора, большего, чем символ , за которым следует символ равенства, а затем функция даты .
Когда мы запустим этот запрос, все задачи будут выполнены в текущую дату или в будущем, как показано на следующем снимке экрана.
Это был пример того, как вы можете использовать функцию Date () в качестве критерия запроса.
Давайте теперь скажем, что этот запрос должен быть более гибким с точки зрения дат, которые он запрашивает, начиная с этой недели.
У нас есть несколько разных задач, которые начались на этой неделе, и которые не отображаются в этом списке из-за наших критериев. Он смотрит на даты начала, которые равны сегодня или выше.
Давайте теперь скажем, что этот запрос должен быть более гибким с точки зрения дат, которые он запрашивает, начиная с этой недели.
У нас есть несколько разных задач, которые начались на этой неделе, и которые не отображаются в этом списке из-за наших критериев. Он смотрит на даты начала, которые равны сегодня или выше.
Если мы хотим просмотреть задачи, которые начались на этой неделе, которые еще не выполнены или должны быть выполнены сегодня, вернемся к представлению «Дизайн».
Здесь мы добавим дополнительную информацию к этим критериям. На самом деле, мы хотим, чтобы оно было больше или равно сегодняшней дате минус семь дней.
Если мы введем минус семь и запустим запрос, вы сможете увидеть задачи, которые начались на этой неделе.
Функция DateDiff ()
Функция DateDiff () — еще одна очень популярная функция даты / времени. Функция DateDiff возвращает Variant (long), указывающий количество временных интервалов между двумя указанными датами. Другими словами, он вычисляет разницу между двумя датами, и вы выбираете интервал, по которому функция рассчитывает эту разницу.
Давайте теперь скажем, что мы хотим рассчитать возраст наших авторов. Для этого нам сначала нужно создать новый запрос и добавить таблицу авторов, а затем добавить поля FirstName, LastName и BirthDay.
Мы можем рассчитать возраст людей, вычислив разницу между их датой рождения или днем рождения и какой бы ни была сегодняшняя дата.
Давайте попробуем использовать функцию DateDiff в новом поле.
Давайте назовем его Age, затем двоеточие, а затем напишем DateDiff Function.
- Первым аргументом функции для функции DateDiff является интервал, поэтому введите «гггг».
- Следующий аргумент функции — это первая дата, по которой мы хотим вычислить, которая в этом случае будет полем дня рождения.
- Третий аргумент функции — какая бы ни была сегодняшняя дата.
Теперь запустите ваш запрос, и вы увидите новое поле, в котором указан возраст каждого автора.
Функция Format ()
Функция Format () возвращает строку, содержащую выражение, отформатированное в соответствии с инструкциями, содержащимися в выражении формата. Вот список пользовательских форматов, которые можно использовать в функции Format ().
настройка | Описание |
---|---|
гггг | Год |
Q | четверть |
м | Месяц |
Y | День года |
d | День |
вес | будний день |
WW | Неделю |
час | Час |
N | минут |
s | второй |
Давайте теперь вернемся к вашему запросу и добавим в него дополнительные поля с помощью функции Format ().
Введите функцию форматирования. Первым аргументом функции будет выражение, которое может быть почти любым. Давайте теперь будем иметь поле дня рождения первым, а следующее — написать наш формат. В этом случае нам нужен месяц, месяц, день, день. Напишите «mmdd» в кавычках, а затем выполните запрос.
Теперь он берет дату из поля дня рождения, 4 — месяц, а 17 — день.
Давайте добавим «mmm» и «mmmm» вместо «mmdd» в следующих полях, как на следующем скриншоте.
Запустите ваш запрос, и вы увидите результаты, как на следующем скриншоте.
В следующем поле возвращаются первые 3 символа из названия месяца для этого дня рождения, а в последнем поле вы получите полное название месяца.
Чтобы увидеть месяц, за которым следует год от дня рождения, давайте добавим «гггг», а также показано на следующем скриншоте.
Позвольте нам снова запустить ваш запрос.
Теперь вы увидите месяц с запятой, а затем год.
IIf () Функция
Функция IIf () является аббревиатурой от «Immediate If», и эта функция оценивает выражение как true или false и возвращает значение для каждого. Имеет до трех аргументов функции, все из которых являются обязательными.
- Первый аргумент — это любое выражение, которое вы хотите оценить.
- Следующий аргумент обозначает истинную часть, которая может быть значением или выражением, возвращаемым, если ваше первое выражение истинно.
- Последний аргумент — это то, что вы хотите вернуть, если ваше выражение ложно.
пример
Давайте возьмем простой пример. Мы создадим новый запрос, используя дизайн запроса, добавим таблицу tblAuthors, а затем добавим следующие поля.
Теперь вы можете видеть, что у нас есть три поля — FirstName, MiddleInitial, LastName, а затем это объединенное поле, которое объединяет все три поля. Давайте запустим ваш запрос, чтобы увидеть результат этого запроса.
Теперь вы можете увидеть результат запроса, но вы также заметите, что некоторые записи не имеют среднего начального значения. Например, запись Джойса Дайера не имеет средней инициалы, но в поле FullName вы увидите период, который действительно не должен быть там. Итак, вернитесь к представлению «Дизайн». Здесь мы сцепим имя другим способом, используя функцию IIf.
Давайте напишем имя в другом поле и назовем его FullName1, а затем наберем функцию IIf.
Первым аргументом функции для Immediate If будет ваше выражение. В выражении мы увидим, является ли среднее начальное поле пустым или нулевым.
Следующий аргумент — это истинная часть. Итак, если средний инициал равен нулю, мы бы хотели отобразить FirstName и LastName.
Теперь для нашей ложной части — если MiddleInitial не равно NULL, то мы бы хотели отобразить FirstName, MiddleInitial и LastName.
Первым аргументом функции для Immediate If будет ваше выражение. В выражении мы увидим, является ли среднее начальное поле пустым или нулевым.
Следующий аргумент — это истинная часть. Итак, если средний инициал равен нулю, мы бы хотели отобразить FirstName и LastName.
Теперь для нашей ложной части — если MiddleInitial не равно NULL, то мы бы хотели отобразить FirstName, MiddleInitial и LastName.
Теперь давайте запустим ваш запрос, и вы увидите результаты, как на следующем скриншоте.
Функции (по категориям) — Access
В этой статье содержатся ссылки на статьи, в которых приведены подробные описания функций, используемых в выражениях Microsoft Access. В первой части статьи они упорядочены по группам, а во второй — по алфавиту.
Совет: В Access 2010 и более поздних версий построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.
ActiveX
Функция CreateObject
Функция GetObject
К началу страницы
Приложение
Функция Command
Функция Shell
К началу страницы
Массивы
Функция Array
Функция Filter
Функция Join
Функция LBound
Функция Split
Функция UBound
К началу страницы
Преобразование
Функция ASC
Функция Chr
Функция EuroConvert
Функция FormatCurrency
Функция FormatDateTime
Функция FormatNumber
Функция FormatPercent
Функция GUIDFromString
Функция Hex
Функция NZ
Функция Oct
Функция STR
Функция StringFromGUID
Функции
преобразования типов Функция Val
К началу страницы
Базы данных
Функция DDE
Функция DDEInitiate
Функция DDERequest
Функция DDESend
Функция Eval
Функция Partition
К началу страницы
Дата и время
Функция Дата
Функция DATEADD
Функция DateDiff
Функция DatePart
Функция DateSerial
Функция ДАТАЗНАЧ
Функция Day
Функция Hour
Функция минуты
Функция Month
Функция MonthName
Функция Now
Вторая функция
Функция время
Функция Timer
Функция TimeSerial
Функция TimeValue
Функция ДЕНЬНЕД
Функция WeekdayName
Функция Year
К началу страницы
Агрегатные функции по подмножеству
Функция DAvg
Функция DCount
Функции DFirst, DLast
Функция DLookup
Функции DMin, DMax
Функции DStDev, DStDevP
ФункцияDSum
Функции DVar, DVarP
К началу страницы
Обработка ошибок
Функция CVErr
Функция Error
К началу страницы
Ввод и вывод при операциях с файлами
Функция EOF
Функция FreeFile
Функция Input
Функция Loc
Функция LOF
Функция Seek
К началу страницы
Управление файлами
Функция CurDir
Функция Dir
Функция FileAttr
Функция FileDateTime
Функция FileLen
Функция GetAttr
К началу страницы
Финансы
Функция DDB
Функция FV
Функция IPmt
Функция IRR
Функция MIRR
Функция NPer
Функция NPV
Функция Pmt
Функция PPmt
Функция PV
Функция Rate
Функция SLN
Функция SYD
К началу страницы
Проверка
Функция Environ
Функция GetAllSettings
Функция GetSetting
Функция IsArray
Функция IsDate
Функция IsEmpty
Функция IsError
Функция IsMissing
Функция IsNull
Функция IsNumeric
Функция IsObject
Функция TypeName
Функция VarType
К началу страницы
Расчеты
Функция Abs
Функция Atn
Функция Cos
Функция Exp
Функции Int, Fix
Функция Log
Функция Rnd
Функция Round
Функция Sgn
Функция Sin
Функция Sqr
Функция Tan
К началу страницы
Сообщения
Функция InputBox
Функция MsgBox
К началу страницы
Прочие
Функция CallByName
Функция IMEStatus
Функция MacID
Функция MacScript
Функция QBColor
Функция RGB
Функция Spc
Функция Tab
К началу страницы
Управление
Функция Choose
Функция DoEvents
Функция IIf
Функция Switch
К началу страницы
Статистические функции SQL
Функция AVG
Функция счёт
Первые, последние функции
Функции min, Max
СТАНДОТКЛОН, функции СТАНДОТКЛОНП
Функция сумм
Функции ДИСП и ДИСПР
Текстовые функции
Функция Format
Функция InStr
Функция InStrRev
Функция LCase
Функция Left
Функция Len
Функции LTrim, RTrim и Trim
Функция Mid
Функция Replace
Функция Right
Функция Space
Функция StrComp
Функция StrConv
Функция String
Функция StrReverse
Функция UCase
К началу страницы
Функции (по алфавиту)
Функция Abs
Функция Array
Функция Asc
Функция Atn
Функция Avg
Функция CallByName
Функция Choose
Функция Chr
Функция Command
Функция Cos
Функция Count
Функция CreateObject
Функция CurDir
Функция CVErr
Функция Date
Функция DateAdd
Функция DateDiff
Функция DatePart
Функция DateSerial
Функция DateValue
Функция DAvg
Функция Day
Функция DCount
Функция DDB
Функция DDE
Функция DDEInitiate
Функция DDERequest
Функция DDESend
Функции DFirst, DLast
Функция Dir
Функция DLookup
Функции DMin, DMax
Функция DoEvents
Функции DStDev, DStDevP
Функция DSum
Функции DVar, DVarP
Функция Environ
Функция EOF
Функция Error
Функция EuroConvert
Функция Eval
Функция Exp
Функция FileAttr
Функция FileDateTime
Функция FileLen
Функция Filter
Функции First и Last
Функция Format
Функция FormatCurrency
Функция FormatDateTime
Функция FormatNumber
Формат FormatPercent
Функция FreeFile
FV (Функция БС)
Функция GetAllSettings
Функция GetAttr
Функция GetObject
Функция GetSetting
Функция GUIDFromString
Функция Hex
Функция Hour
Функция IIf
Функция IMEStatus
Функция Input
Функция InputBox
Функция InStr
Функция InStrRev
Функции Int, Fix
Функция IPmt
Функция IRR
Функция IsArray
Функция IsDate
Функция IsEmpty
Функция IsError
Функция IsMissing
Функция IsNull
Функция IsNumeric
Функция IsObject
Функция Join
Функция LBound
Функция LCase
Функция Left
Функция Len
Функция Loc
Функция LOF
Функция Log
Функции LTrim, RTrim и Trim
Функция MacID
Функция MacScript
Функция Mid
Функции Min, Max
Функция Minute
Функция MIRR
Функция Month
Функция MonthName
Функция MsgBox
Функция Now
Функция NPer
Функция NPV
Функция Nz
Функция Oct
Функция Partition
Функция Pmt
Функция PPmt
Функция PV
Функция QBColor
Функция Rate
Функция Replace
Функция RGB
Функция Right
Функция Rnd
Функция Round
Функция Second
Функция Seek
Функция Sgn
Функция Shell
Функция Sin
Функция SLN
Функция Space
Функция Spc
Функция Split
Функция Sqr
Функции StDev, StDevP
Функция Str
Функция StrComp
Функция StrConv
Функция String
Функция StringFromGUID
Функция StrReverse
Функция Sum
Функция Switch
Функция SYD
Функция Tab
Функция Tan
Функция Time
Функция Timer
Функция TimeSerial
Функция TimeValue
Функции преобразования типа
Функция TypeName
Функция UBound
Функция UCase
Функция Val
Функции Var и VarP
Функция VarType
Функция Weekday
Функция WeekdayName
Функция Year
К началу страницы
Примечание:
Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).
Функции преобразования типа — Access
Каждая функция приводит выражение к определенному тип данных.
Синтаксис
CBool(
выражение
)
CByte(
выражение
)
CCur(
выражение
)
CDate(
выражение
)
CDbl(
выражение
)
CDec(
выражение
)
CInt(
выражение
)
CLng(
выражение
)
CSng(
выражение
)
CStr(
выражение
)
CVar(
выражение
)
Обязательный аргумент выражениеАргумент — это любое строковое выражение или числовое выражение.
Возвращаемые типы
Тип возвращаемого значения определяется по имени функции в соответствии со следующей таблицей:
|
|
|
---|---|---|
|
Boolean
|
Любое допустимое строковое или числовое выражение.
|
|
Byte
|
От 0 до 255.
|
|
Currency
|
От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
|
|
Date
|
Любое допустимое выражение даты.
|
|
Double
|
От -1,79769313486231E308 до
|
|
Decimal
|
+/-79 228 162 514 264 337 593 543 950 335 для чисел без дробной части. Для чисел с 28 десятичными знаками допустимый диапазон составляет
|
|
Integer
|
От -32 768 до 32 767, дробная часть округляется.
|
|
Long
|
От -2 147 483 648 до 2 147 483 647, дробная часть округляется.
|
|
Single
|
От -3,402823E38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,402823E38 для положительных.
|
|
String
|
Результат, возвращаемый функцией CStr, зависит от аргумента выражение.
|
|
Variant
|
Тот же диапазон, что и Double для чисел. Тот же диапазон, что и в качестве строки для нечисловых значений.
|
Замечания
Если передаваемое функции выражение находится за пределами диапазона типа данных, в который оно преобразуется, возникает ошибка.
Как правило, функции преобразования типов используются в тексте программ для того, чтобы указать, что результатом той или иной операции должны стать данные определенного типа, а не типа, заданного по умолчанию. Например, с помощью функции CCur можно принудительно перейти к вычислениям в денежном формате в тех случаях, в которых обычно используются действия с числами с обычной точностью, двойной точностью или с целыми числами.
Функции преобразования типа данных следует использовать вместо функции Val для преобразования типов данных в приложениях, поддерживающих различные региональные стандарты. Например, при использовании функции CCur десятичные разделители, разделители групп разрядов и параметры денежных единиц распознаются в соответствии с языковыми и региональными параметрами компьютера.
Если дробная часть целого числа строго равна 0,5, функции CInt и CLng всегда округляют результат до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 — до 2. В отличие от функций CInt и CLng, в функциях Fix и Int дробная часть не округляется, а отбрасывается. Кроме того, функции Fix и Int всегда возвращают значение того же типа, что и переданное им выражение.
Для определения возможности преобразования даты в дату или время используется функция IsDate. Функция CDate распознает литералы даты и времени, а также некоторые числа, которые находятся в диапазоне допустимых дат. При преобразовании числа в дату преобразуется целая часть числа. Дробная часть преобразуется во время суток, начиная с полуночи.
Функция CDate распознает форматы даты в соответствии с параметрами языковые стандарты системы. Правильное определение дня, месяца и года может быть недоступно, если оно предоставляется в формате, отличном от одного из распознаваемых параметров даты. Кроме того, не удается распознать длинный формат даты, если он содержит строку дня недели.
Функция CVDate предназначена для обеспечения совместимости с предыдущими версиями Visual Basic. Синтаксис функции CVDate идентичен синтаксису функции CDate, однако функция CVDate возвращает не результат типа Date, а результат типа Variant с подтипом Date. Поскольку теперь реализован встроенный тип Date, необходимость в функции CVDate отпадает. Того же результата можно добиться, преобразовав выражение в тип Date и присвоив это значение переменной типа Variant. Этот способ позволяет преобразовать все прочие встроенные типы в эквивалентные им подтипы Variant.
Примечание: Функция CDec не возвращает отдельный тип данных. Вместо этого она всегда возвращает результат типа Variant, значение которого преобразовано в подтип Decimal.
Примеры VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
Функция CBool
Совет: В Access 2010 и более поздних версиях есть построитель выражений с поддержкой IntelliSense, который помогает создавать выражения.
В этом примере функция CBool используется для преобразования выражения в тип Boolean. Если выражение разрешается в ненулевое значение, функция CBool возвращает значение True; в противном случае она возвращает значение False.
Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.
Функция CByte
В этом примере функция CByte используется для преобразования выражения в тип Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Функция CCur
В этом примере функция CCur используется для преобразования выражения в тип Currency.
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).
Функция CDate
В этом примере функция CDate используется для преобразования выражения в тип Date. Как правило, не рекомендуется определять дату и время в виде строк (как показано в этом примере). Вместо этого пользуйтесь литералами даты и времени, например #2/12/1969# и #4:45:23 PM#.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)
Функция CDbl
В этом примере функция CDbl используется для преобразования выражения в тип Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Функция CDec
В этом примере функция CDec используется для преобразования выражения в тип Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Функция CInt
В этом примере функция CInt используется для преобразования выражения в тип Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Функция CLng
В этом примере функция CLng используется для преобразования выражения в тип Long.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.
Функция CSng
В этом примере функция CSng используется для преобразования выражения в тип Single.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.
Функция CStr
В этом примере функция CStr используется для преобразования выражения в тип String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Функция CVar
В этом примере функция CVar используется для преобразования выражения в тип Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.
IIf Функция — Доступ
Возвращает одну из двух частей, в зависимости от оценки выражения.
IIf можно использовать везде, где можно использовать выражения. Вы используете IIf , чтобы определить, является ли другое выражение истинным или ложным. Если выражение истинно, IIf возвращает одно значение; если оно ложно, IIf возвращает другое. Вы указываете значения , которые возвращает IIf .
Посмотреть несколько примеров
Синтаксис
IIf
(
expr
,
truepart
,
ложная часть
)
Синтаксис функции IIf имеет следующие аргументы:
Аргумент | Описание |
---|---|
| Обязательно.Выражение, которое вы хотите оценить. |
| Обязательно. Значение или выражение возвращается, если expr равно True . |
| Обязательно.Значение или выражение возвращается, если expr равно False . |
Замечания
IIf всегда оценивает и truepart , и falsepart , даже если возвращает только один из них. Из-за этого следует следить за нежелательными побочными эффектами. Например, если оценка falsepart приводит к ошибке деления на ноль, ошибка возникает, даже если expr равно True .
Примеры
Использование IIf в форме или отчете Предположим, у вас есть таблица «Клиенты», содержащая поле с именем CountryRegion. В форме вы хотите указать, является ли итальянский язык первым языком контакта. Вы можете добавить элемент управления и использовать IIf в свойстве Control Source , например:
= IIf ([CountryRegion] = «Италия», «итальянский», «другой язык»)
Когда вы открываете форму в представлении формы, в элементе управления отображается «итальянский», если значение CountryRegion — Италия, и «какой-либо другой язык», если CountryRegion — любое другое значение.
Использование IIf в сложных выражениях Любое выражение можно использовать как любую часть оператора IIf . Вы также можете «вкладывать» выражения IIf , что позволяет вам оценивать ряд зависимых выражений. Чтобы продолжить предыдущий пример, вы можете протестировать несколько разных значений CountryRegion, а затем отобразить соответствующий язык в зависимости от того, какое значение существует:
= IIf ([CountryRegion] = «Италия», «итальянский», IIf ([CountryRegion] = «Франция», «французский», IIf ([CountryRegion] = «Германия», «немецкий», «другой язык») ))
Текст «Другой язык» — это аргумент falsepart самой внутренней функции IIf .Поскольку каждая вложенная функция IIf является аргументом falsepart функции IIf , которая ее содержит, текст «Другой язык» возвращается только в том случае, если все аргументы expr всех IIf функции оцениваются как False.
В качестве другого примера предположим, что вы работаете в библиотеке. В базе данных библиотеки есть таблица с именем «Выписки», которая содержит поле с именем Срок сдачи, в котором указана дата возврата конкретной книги.Вы можете создать форму, которая указывает состояние извлеченного элемента в элементе управления, используя функцию IIf в свойстве Control Source этого элемента управления, например:
= IIf ([Срок оплаты] <Дата (), «ПЕРЕСРОЧЕН», IIf ([Срок] = Дата (), «Срок сдачи сегодня», «Еще не срок»))
Когда вы открываете форму в режиме формы, в элементе управления отображается «ПЕРЕСРОЧЕН», если значение параметра «Срок выполнения» меньше текущей даты, «Срок выполнения сегодня», если он равен текущей дате, и «Срок выполнения» в противном случае.
Примечание: Чтобы использовать логические операторы, такие как «И» или «Или», в аргументе expr функции IIf , вы должны заключить логическое выражение в функцию Eval. См. Таблицу с примерами ниже.
Использовать IIf в запросе
Функция IIf часто используется для создания вычисляемых полей в запросах. Синтаксис тот же, за исключением того, что в запросе вы должны предварять выражение псевдонимом поля и двоеточием (: ) вместо знака равенства ( = ).Чтобы использовать предыдущий пример, вы должны ввести следующее в строке Поле сетки конструктора запроса:
Язык: IIf ([CountryRegion] = «Италия», «Итальянский», «Другой язык»)
В данном случае «Язык» — это псевдоним поля.
Дополнительные сведения о создании запросов и вычисляемых полей см. В статье Создание простого запроса на выборку.
Использование IIf в коде VBA
Примечание. Следующие примеры демонстрируют использование этой функции в модуле Visual Basic для приложений (VBA).Для получения дополнительных сведений о работе с VBA выберите Developer Reference в раскрывающемся списке рядом с Search и введите один или несколько терминов в поле поиска.
В этом примере функция IIf используется для оценки параметра TestMe процедуры CheckIt и возвращает слово «Large», если сумма больше 1000; в противном случае возвращается слово «Маленький».
Функция CheckIt (TestMe как целое число)
CheckIt = IIf (TestMe> 1000, «Большой», «Маленький»)
Конечная функция
Другие примеры
Выражение | Результаты |
---|---|
= IIf ([AirportCode] = «ORD», «Чикаго», IIf ([AirportCode] = «ATL», «Атланта», IIf ([AirportCode] = «SEA», «Сиэтл», «Другое»))) | Если [AirportCode] — «ORD», верните «Chicago».В противном случае, если [AirportCode] — «ATL», верните «Atlanta». В противном случае, если [AirportCode] — «SEA», верните «Сиэтл». В противном случае верните «Другое». |
= IIf ([Дата отправки] <Дата (), «Отправлено», IIf ([Дата доставки] = Дата (), «Доставка сегодня», «Не отправлено»)) | Если [Дата доставки] предшествует сегодняшней дате, возвращается значение «Отправлено». В противном случае, если [ShipDate] равна сегодняшней дате, верните «Доставка сегодня».В противном случае верните «Не отправлено». |
= IIf ([PurchaseDate] <# 1/1/2008 #, "Старый", "Новый") | Если [PurchaseDate] до 01.01.2008, верните «Старый». В противном случае верните «Новый». |
= IIf (Eval ([Вольт] между 12 и 15 и [Ампер] между 0,25 и 0,3), «ОК», «Вне калибровки») | Если [Вольт] составляет от 12 до 15, а [Ампер] находится в пределах 0.25 и 0,3, верните «ОК». В противном случае верните «Вне калибровки». |
= IIf (Eval ([CountryRegion] In («Канада», «США», «Мексика»)), «Северная Америка», «Другое») | Если [CountryRegion] — «Канада», «США» или «Мексика», верните «Северная Америка». В противном случае верните «Другое». |
= IIf ([Среднее]> = 90, «A», IIf ([Среднее]> = 80, «B», IIf ([Среднее]> = 70, «C», IIf ([Среднее]> = 60, «Д», «Ж»)))) | Если [Среднее] равно 90 или больше, вернуть «А».В противном случае, если [Среднее] равно 80 или больше, верните «B». В противном случае, если [Среднее] равно 70 или больше, верните «C». В противном случае, если [Среднее] равно 60 или больше, верните «D». В противном случае верните «F». |
Примечание: Если вы используете функцию IIf для создания вычисляемого поля в запросе, замените знак равенства ( = ) псевдонимом поля и двоеточием (: ). Например, Статус: IIf ([Дата отправки] <Дата (), «Отправлено», IIf ([Дата доставки] = Дата (), «Доставка сегодня», «Не отправлено»))
.
MS Access: функция iif
В этом руководстве MSAccess объясняется, как использовать функцию Access iif с синтаксисом и примерами.
Описание
Функция iif Microsoft Access возвращает одно значение, если заданное условие оценивается как ИСТИНА, или другое значение, если оно оценивается как ЛОЖЬ.
Синтаксис
Синтаксис функции iif в MS Access:
iif (условие; значение_if_true, значение_if_false)
Параметры или аргументы
- состояние
- Значение, которое вы хотите проверить.
- значение_if_true
- Значение, которое возвращается, если условие оценивается как ИСТИНА.
- значение_if_false
- Значение, которое возвращается, если условие оценивается как ЛОЖЬ.
Возврат
Функция iif возвращает value_if_true , когда условие TRUE.
Функция iif возвращает value_if_false , если условие — FALSE.
Относится к
Функцию iif можно использовать в следующих версиях Microsoft Access:
- Доступ 2016, Доступ 2013, Доступ 2010, Доступ 2007, Доступ 2003, Доступ XP, Доступ 2000
Пример
Давайте посмотрим, как использовать функцию iif в MS Access:
iif ([Qty]> 10, «большой», «маленький»)
В этом примере будет возвращено «большое», если значение в поле Qty больше 10.В противном случае вернется «маленький».
Это эквивалентно следующему оператору IF в коде VBA.
Если [Кол-во]> 10 Тогда результат = "большой" Еще результат = "маленький" Конец, если
Пример в SQL / запросы
Вы можете использовать функцию iif в запросе в Microsoft Access.
Например:
В этом запросе мы использовали функцию iif следующим образом:
часов: IIf ([Time Out] <# 12:00:00 PM #, ([Time Out) - [Time In]) * 24, (([Time Out] - [Time In]) * 25) -0 .5)
В этом примере, если поле [Time Out] меньше или равно 12 часам полудня, функция iif вернет количество часов, прошедших между [Time Out] и [Time In].
Если [Тайм-аут] больше 12 часов полудня, то функция iif вычитает 30 минут из отработанного времени.
Результаты функции iif будут отображены в столбце часов .
Часто задаваемые вопросы
Вопрос: Как мне использовать функцию iif, если я хочу иметь более одного условия?
Ответ: Вы можете использовать ключевое слово AND для включения нескольких условий.
В приведенном выше примере функция iif вернет «Да», если ContactTitle = «Owner» и City = «Madrid». Если одно или оба этих условия не выполняются, возвращается «Нет».
.