Примеры выражений

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

Примечание : В данной статье приведены базовые инструкции по созданию выражений, и она не является полным руководством по использованию инструментов Access, предназначенных для создания выражений. Дополнительные сведения о создании выражений см. в статье Создание выражений.

В этой статье

Общие сведения о выражениях

Примеры выражений, используемых в формах и отчетах

Примеры выражений, используемых в запросах или фильтрах

Примеры выражений для задания значений по умолчанию

Примеры выражений для правил проверки поля

Примеры выражений для условий в макросах

Общие сведения о выражениях

В Access термин выражение является синонимом формулы. Выражение представляет собой набор элементов, используемых по одному или в комбинации друг с другом, который дает определенный результат. Такими элементами являются:

  • идентификаторы — имя поля таблицы или элемента управления в форме или отчете либо свойства этого поля или элемента управления;

  • операторы, например + (плюс) или - (минус);

  • функции, например SUM или AVG;

  • константы — постоянные значения, например текстовые строки или числа, не вычисляемые выражением.

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

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

К началу страницы

Примеры выражений, используемых в формах и отчетах

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

Ниже описано, как ввести выражение в элемент управления "текстовое поле" в форме или отчете.

Создание вычисляемых элементов управления

  1. В области навигации щелкните правой кнопкой мыши форму или отчет, которые вы хотите изменить, и выберите в контекстном меню команду Конструктор Изображение кнопки .

  2. В форме или отчете щелкните правой кнопкой мыши элемент управления "текстовое поле" (но не его подпись) и выберите в контекстном меню пункт Свойства.

  3. При необходимости откройте вкладку Все или Данные. На обеих вкладках есть свойство Данные.

  4. Щелкните поле свойства Данные и введите выражение. Например, вы можете скопировать и вставить выражение из столбца "Выражение" таблицы ниже.

  5. Закройте страницу свойств.

Выражения, объединяющие или обрабатывающие текст

В выражениях, приведенных в таблице ниже, используются операторы & (амперсанд) и + (плюс) для объединения текстовых строк, а также встроенные функции для обработки текстовых строк или выполнения с ними других действий.

Выражение

Результат

="Н/Д"

Отображает "Н/Д".

=[Имя] & " " & [Фамилия]

Отображает значения, хранящиеся в полях таблицы "Имя" и "Фамилия". В данном примере оператор & используется для объединения значения в поле "Имя", пробела (заключенного в кавычки) и значения в поле "Фамилия".

=Left([НазваниеТовара]; 1)

Функция Left используется для отображения первого знака в значении поля или элемента управления «НазваниеТовара».

=Right([КодТовара], 2)

Функция Right используется для отображения последних 2 знаков в значении поля или элемента управления «КодТовара».

=Trim([Адрес])

Функция Trim используется для отображения значения в элементе управления «Адрес» и удаления всех пробелов в начале или конце строки.

=IIf(IsNull([Область]); [Город] & " " & [Индекс]; [Город] & " " & [Область] & " " & [Индекс])

Функция IIf используется для отображения значений элементов управления "Город" и "Индекс", если элемент управления "Область" имеет пустое значение; в противном случае отображаются значения в элементах управления "Город", "Область" и "Индекс", разделенные пробелами.

=[Город] & (" " + [Область]) & " " & [Индекс]

Оператор + и распространение значений Null используются для отображения значений в элементах управления "Город" и "Индекс", если элемент управления или поле "Область" имеет значение Null; в противном случае отображаются значения в элементах управления или полях "Город", "Область" и "Индекс", разделенные пробелами.

Распространение значений Null означает, что если хотя бы один компонент выражения возвращает значение Null, то и все выражение также возвращает Null. Оператор + поддерживает распространение значений Null, а оператор & — нет.

Выражения в колонтитулах

Для отображения или печати номеров страниц в отчетах или формах используются свойства Page и Pages. Свойства Page и Pages доступны только во время печати или предварительного просмотра, поэтому они не отображаются на странице свойств формы или отчета. Обычно эти свойства используются путем перемещения текстового поля в область верхнего или нижнего колонтитула в форме или отчете и применения выражения, например из приведенной ниже таблицы.

Дополнительные сведения об использовании колонтитулов в формах и отчетах см. в статье Вставка номеров страниц в форму или отчет.

Выражение

Пример результата

=[Page]

1

="Стр. " & [Page]

Стр. 1

="Стр. " & [Page] & " из " & [Pages]

Страница 1 из 3

=[Page] & " из " & [Pages] & " стр."

1 из 3 стр.

=[Page] & "/" & [Pages] & " стр."

1/3 стр.

=[Страна/регион] & " - " & [Page]

Россия - 1

=Format([Page], "000")

001

="Напечатано: " & Date()

Напечатано: 31.12.07

Выражения, выполняющие арифметические операции

Выражения могут использоваться для сложения, вычитания, умножения и деления значений в нескольких полях или элементах управления. Вы также можете применять их для выполнения арифметических операций над датами. Например, допустим, что в таблице есть поле даты и времени "Срок". В поле или элементе управления, связанном с полем, выражение =[Срок] - 2 будет возвращать значение даты и времени, предшествующее на два дня значению в поле "Срок".

Выражение

Результат

=[СуммаЗаказа]+[СтоимостьДоставки]

Сумма значений в полях или элементах управления "СуммаЗаказа" и "СтоимостьДоставки".

=[Срок]-[ДатаПоставки]

Интервал между значениями даты в полях или элементах управления "Срок" и "ДатаПоставки".

=[Цена]*1,06

Результат умножения значения поля или элемента управления "Цена" на 1,06 (добавление 6 процентов к значению "Цена").

=[Количество]*[Цена]

Результат умножения значений в полях или элементах управления "Количество" и "Цена".

=[ИтогСотрудник]/[ИтогОбласть]

Частное от деления значений полей или элементов управления "ИтогСотрудник" и "ИтогОбласть".

Примечание : Если в выражении используются арифметические операторы (+, -, * и /) и один из элементов управления имеет значение Null, результатом всего выражения будет значение Null. Это называется распространением значений Null. Если хотя бы одна из записей в элементах управления, используемых в выражении, может иметь значение Null, следует преобразовать его в нуль при помощи функции Nz, например: =Nz([СуммаЗаказа])+Nz([СтоимостьДоставки).

Дополнительные сведения о ней см. в статье Функция Nz.

Выражения, ссылающиеся на значения в других полях или элементах управления

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

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

Выражение

Результат

=Forms![Заказы]![КодЗаказа]

Значение элемента управления "КодЗаказа" в форме "Заказы".

=Forms![Заказы]![Заказано].Form![ОтпускнаяЦена]

Значение элемента управления "ОтпускнаяЦена" из подчиненной формы "Заказано" в форме "Заказы".

=Forms![Заказы]![Заказано]![КодТовара].Column(2)

Значение третьего столбца поля "КодТовара" (список из нескольких столбцов в подчиненной форме "Заказано") в форме "Заказы". (Обратите внимание, что индекс 0 является ссылкой на первый столбец, 1 — на второй и т. д.).

=Forms![Заказы]![Заказано]![Цена] * 1,06

Результат умножения значения элемента управления "Цена" подчиненной формы "Заказано" в форме "Заказы" на 1,06 (добавление 6 процентов к значению "Цена").

=Parent![КодЗаказа]

Значение элемента управления "КодЗаказа" в форме, которая является главной для текущей подчиненной формы.

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

Дополнительные сведения об этом свойстве см. в статье Свойство "Отчет".

Выражение

Результат

=Report![Счет]![КодЗаказа]

Значение элемента управления "КодЗаказа" в отчете "Счет".

=Report![Итоги]![Подотчет]![СуммаЗаказов]

Значение элемента управления "Сумма заказов" из подчиненного отчета "Подотчет" в отчете "Итоги".

=Parent![КодЗаказа]

Значение элемента управления "КодЗаказа" в отчете, который является главным для текущего подчиненного отчета.

Выражения, вычисляющие сумму, среднее значений и подсчитывающие значения

Для вычисления значений одного или нескольких полей или элементов управления можно использовать так называемые агрегатные функции. Например, вам может потребоваться вычислить итоговое значение для нижнего колонтитула в отчете или промежуточную сумму по всем позициям формы. Можно также подсчитать число элементов в одном или нескольких полях или вычислить среднее значение.

В приведенной ниже таблице содержаться выражения, использующие функции Avg, Count и Sum.

Выражение

Описание

=Avg([СтоимостьДоставки])

Функция Avg используется для отображения среднего значений поля таблицы или элемента управления "СтоимостьДоставки".

=Count([КодЗаказа])

Функция Count используется для отображения числа записей в элементе управления "КодЗаказа".

=Sum([Продажи])

Функция Sum используется для отображения суммы значений элемента управления "Продажи".

=Sum([Количество]*[Цена])

Функция Sum используется для отображения суммы произведения значений элементов управления "Количество" и "Цена".

=[Продажи]/Sum([Продажи])*100

Отображает процент продаж, полученный путем деления общего значения "Продажи" на сумму значений этого элемента управления.

Примечание : Если для свойства Формат элемента управления задано значение Процентный, не включайте в выражение операцию *100.

Дополнительные сведения об использовании агрегатных функций и вычислении итоговых значений в полях и столбцах см. в статьях Суммирование данных с помощью запроса, Подсчет данных при помощи запроса, Подсчет строк в таблице и Отображение итогов по столбцу в таблице.

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

Агрегатные функции по подмножеству используются для вычисления выборочной суммы или выборочного подсчета значений. Подмножество — это одно или несколько полей в одной или нескольких таблицах на одной или нескольких формах или отчетах. Например, вы можете сопоставить значения в поле таблицы со значениями в элементе управления в форме.

Выражение

Описание

=DLookup("[ИмяКонтактногоЛица]"; "[Поставщики]"; "[КодПоставщика] = " & Forms("Поставщики")("[КодПоставщика]"))

Функция DLookup используется для возвращения значения из полей "ИмяКонтактногоЛица" в таблице "Поставщики", для которых значение в поле "КодПоставщика" в таблице совпадает со значением элемента управления "КодПоставщика" в форме "Поставщики".

=DLookup("[ИмяКонтактногоЛица]"; "[Поставщики]"; "[КодПоставщика] = " & Forms![НовыеПоставщики]![КодПоставщика])

Функция DLookup используется для возвращения значения из полей "ИмяКонтактногоЛица" в таблице "Поставщики", для которых значение в поле "КодПоставщика" в таблице совпадает со значением элемента управления "КодПоставщика" в форме "НовыеПоставщики".

=DSum("[СуммаЗаказа]"; "[Заказы]"; "[КодКлиента] = 'РАТТС'")

Функция DSum используется для возвращения значений из поля "СуммаЗаказа" таблицы "Заказы", для которых значение поля "КодКлиента" равно "РАТТС".

=DCount("[НаПенсии]";"[Ресурсы]";"[НаПенсии]=Да")

Функция DCount используется для возвращения числа значений "Да" в поле "НаПенсии" (логическое поле) в таблице "Ресурсы".

Выражения, производящие операции над датами

Отслеживание дат и времени — одно из основных действий при работе с базами данных. Например, вы можете вычислить, сколько дней прошло с момента выписки счета, чтобы определить срок дебиторской задолженности. Можно задать различные форматы даты и времени, как показано в следующей таблице.

Выражение

Описание

=Date()

Функция Date используется для отображения текущей даты в формате дд-мм-гг, где дд — день (от 1 до 31), мм — месяц (от 1 до 12), а гг — последние две цифры года (от 1980 до 2099).

=Format(Now(); "ww")

Функция Format используется для отображения номера недели в году, на которую приходится текущая дата, где ww — номер недели от 1 до 53.

=DatePart("yyyy", [ДатаЗаказа])

Функция DatePart используется для отображения значения года, содержащегося в элементе управления «ДатаЗаказа», в четырехзначном формате.

=DateAdd("y", -10, [УсловленнаяДата])

Функция DateAdd используется для отображения даты, предшествующей на 10 дней значению даты в элементе управления «УсловленнаяДата».

=DateDiff("d"; [ДатаЗаказа]; [ДатаПоставки])

Функция DateDiff используется для отображения разницы в днях между значениями дат в элементах управления "ДатаЗаказа" и "ДатаПоставки".

=[ДатаСчета] + 30

Арифметическая операция используется для вычисления даты, которая на 30 дней позднее значения даты в поле или элементе управления "ДатаСчета".

Условные выражения, возвращающие одно из двух возможных значений

В примерах выражений, приведенных в следующей таблице, используется функция IIf для возвращения одного из двух возможных значений. Функция IIf имеет три аргумента. Первый аргумент — это выражение, которое должно возвращать значения True или False. Второй аргумент — это значение, возвращаемое в случае, если выражение имеет значение True, а третий аргумент — значение, возвращаемое в случае, если выражение имеет значение False.

Выражение

Описание

=IIf([Подтверждение] = "Да"; "Заказ подтвержден"; "Заказ не подтвержден")

Функция IIf используется для отображения сообщения "Заказ подтвержден", если элемент управления "Подтверждение" имеет значение Да; в противном случае отображается сообщение "Заказ не подтвержден".

=IIf(IsNull([Страна]); " "; [Страна])

Функции IIf и IsNull используются для отображения пустой строки, если элемент управления "Страна" имеет значение Null; в противном случае выводится его значение.

=IIf(IsNull([Область]); [Город] & " " & [Индекс]; [Город] & " " & [Область] & " " & [Индекс])

Функции IIf и IsNull используются для отображения значений элементов управления "Город" и "Индекс", если элемент управления "Область" имеет значение Null; в противном случае отображаются значения в полях или элементах управления "Город", "Область" и "Индекс".

=IIf(IsNull([Срок]) Or IsNull([ДатаПоставки]); "Проверьте отсутствующую дату"; [Срок] - [ДатаПоставки])

Функции IIf и IsNull используются для отображения сообщения "Проверьте отсутствующую дату", если результат вычитания значения элемента управления "Срок" из значения "ДатаПоставки" равен пустому значению (Null); в противном случае отображается интервал между значениями дат "Срок" и "ДатаПоставки".

К началу страницы

Примеры выражений, используемых в запросах или фильтрах

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

Условия отбора используются в запросе для ограничения числа отображаемых записей. Например, оператор Between применяется для задания начальной и конечной даты и ограничения результатов запроса только теми заказами, которые были поставлены в указанный период.

В следующих разделах описан процесс добавления вычисляемого поля в запрос и приведены примеры выражений для использования в запросах.

Добавление вычисляемого поля в запрос в режиме конструктора

  1. В области переходов щелкните правой кнопкой мыши запрос, который требуется изменить, и выберите в контекстном меню команду Конструктор.

  2. Выберите ячейку Поле в столбце, в котором вы хотите создать вычисляемое поле. Вы можете ввести имя поля и двоеточие либо указать выражение. Если не ввести имя поля, Access добавит Выражениеn:, где n — порядковый номер.

  3. Введите выражение.

    -или-

    На вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель для запуска построителя выражений.

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

Выражения, обрабатывающие текст в запросах или фильтрах

В выражениях, приведенных в таблице ниже, используются операторы & и + для объединения текстовых строк, а также встроенные функции для обработки текстовых строк или выполнения с ними других действий.

Выражение

Описание

ПолноеИмя: [Имя] & " " & [Фамилия]

Создание поля "ПолноеИмя", отображающего значения полей "Имя" и "Фамилия", разделенные пробелом.

Адрес2: [Город] & " " & [Область] & " " & [Индекс]

Создание поля "Адрес2", отображающего значения полей "Город", "Область" и "Индекс", разделенные пробелами.

ПерваяБукваТовара:Left([НазваниеТовара]; 1)

Создание поля "ПерваяБукваТовара" и отображение в нем с помощью функции Left первого знака значения в поле "НазваниеТовара".

КодТипа: Right([КодТовара]; 2)

Создание поля "КодТипа" и отображение с помощью функции Right последних двух знаков в значении поля "КодТовара".

КодРайона: Mid([Телефон];2;3)

Создание поля "КодРайона" и отображение с помощью функции Mid трех знаков, начиная со второго, в значении поля "Телефон".

Выражения, выполняющие арифметические операции в вычисляемых полях

Выражения могут использоваться для сложения, вычитания, умножения и деления значений в нескольких полях или элементах управления. Вы также можете выполнять арифметические операции над датами. Например, допустим, что существует поле даты и времени "Срок". Выражение =[Срок] - 2 возвращает значение даты и времени, предшествующее на два дня значению в поле "Срок".

Выражение

Описание

СрочнаяДоставка: [СтоимостьДоставки] * 1,1

Создание поля "СрочнаяДоставка" и отображение стоимости доставки плюс 10 процентов.

ОбъемЗаказа: [Количество] * [Цена]

Создание поля "ОбъемЗаказа" и отображение произведения значений полей "Количество" и "Цена".

ВремяДоставки: [Срок] - [ДатаПоставки]

Создание поля "ВремяДоставки" и отображение разности значений полей "Срок" и "ДатаПоставки".

ВсегоВНаличии: [НаСкладе] + [Ожидается]

Создание поля "ВсегоВНаличии" и отображение суммы значений полей "НаСкладе" и "Ожидается".

ДоляДоставки: Sum([СтоимостьДоставки])/Sum([Итог]) *100

Создание поля "ДоляДоставки" и отображение стоимости доставки в процентах от итога. Функция Sum используется для вычисления суммы всех значений поля "СтоимостьДоставки", после чего это значение делится на сумму всех значений поля "Итог".

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

Дополнительные сведения о создании итоговых запросов см. в статье Суммирование данных с помощью запроса.

Если для свойства Формат поля задано значение Процентный, не включайте операцию *100.

Дополнительные сведения об использовании агрегатных функций и вычислении итоговых значений в полях и столбцах см. в статьях Суммирование данных с помощью запроса, Подсчет данных при помощи запроса, Подсчет строк в таблице и Отображение итогов по столбцу в таблице.

Выражения, производящие операции над датами в вычисляемых полях

Почти во всех базах данных хранятся значения даты и времени. Для работы со значениями даты и времени в Access для полей таблицы задается тип данных "Дата/время". В Access можно выполнять автоматические арифметические операции с датами. Например, вы можете вычислить, сколько дней прошло с момента выписки счета, чтобы определить срок дебиторской задолженности.

Выражение

Описание

ВремяЗадержки: DateDiff("d"; [ДатаЗаказа]; [ДатаПоставки])

Создание поля "ВремяЗадержки" и отображение с помощью функции DateDiff числа дней между датой размещения заказа и датой поставки.

ГодНайма: DatePart("yyyy";[ДатаНайма])

Создание поля "ГодНайма" и отображение с помощью функции DatePart года найма сотрудника.

МинусТридцать: Date( )- 30

Создание поля "МинусТридцать" и отображение с помощью функции Date даты, предшествующей текущей на 30 дней.

Выражения, подсчитывающие, вычисляющие сумму и среднее значений с помощью агрегатных функций SQL или агрегатных функций по подмножеству

В приведенной ниже таблице в выражениях используются функции SQL для расчета итоговых или агрегатных значений. Эти функции (например, Sum, Count и Avg) часто называются агрегатными функциями.

В дополнение к агрегатным функциям в Access существуют агрегатные функции по подмножеству, которые используются для выборочного вычисления суммы или подсчета значений. Например, вы можете подсчитать только значения, лежащие в определенном интервале, или выполнить подстановку значений из другой таблицы. В набор статистических функций по подмножеству входят DSum, DCount и DAvg.

Для вычисления итогового значения часто требуется создать запрос. Например, для суммирования значений группы следует создать итоговый запрос. Чтобы включить итоговый запрос, на бланке запроса выберите вариант Итоги в меню Представление.

Выражение

Описание

ЧислоСтрок:Count(*)

Создание поля "ЧислоСтрок" и подсчет с помощью функции Count числа записей в запросе, включая записи с пустыми полями.

ДоляДоставки: Sum([СтоимостьДоставки])/Sum([Итог]) *100

Создание поля "ДоляДоставки" и вычисление процента стоимости доставки для каждого итога. Для этого сумма всех значений поля "Стоимость доставки" делится на сумму всех значений поля "Итог". (В этом примере используется функция Sum.)

Примечание : Это выражение следует использовать с итоговым запросом. Если для свойства Формат поля задано значение Процентный, не включайте операцию *100.

Дополнительные сведения о создании итоговых запросов см. в статье Суммирование данных с помощью запроса.

СредняяЦенаДоставки: DAvg("[СтоимостьДоставки]"; "[Заказы]")

Создание поля "СредняяЦенаДоставки" и вычисление с помощью функции DAvg средней стоимости доставки по всем заказам, объединенным в итоговом запросе.

Выражения для работы с полями с отсутствующими данными (полями со значением Null)

Приведенные ниже выражения работают с полями, которые могут не содержать данных, т. е. иметь значения Null. Значения Null встречаются довольно часто. Например, это может быть неизвестная цена для нового товара или значение, которое сотрудник забыл добавить в отчет. Возможность поиска и обработки значений Null — это важная часть операций с базами данных, и выражения, приведенные в следующей таблице, демонстрируют некоторые способы работы с такими значениями.

Выражение

Описание

ТекущаяСтрана:IIf(IsNull([Страна]); " "; [Страна])

Создание поля "ТекущаяСтрана" и отображение с помощью функций IIf и IsNull пустой строки в поле, если поле "Страна" содержит значение Null; в противном случае отображается значение поля "Страна".

ВремяДоставки: IIf(IsNull([Срок] - [ДатаПоставки]); "Проверьте отсутствующую дату"; [Срок] - [ДатаПоставки])

Создание поля "ВремяДоставки" и отображение с помощью функций IIf и IsNull сообщения "Проверьте отсутствующую дату", если одно из полей "Срок" или "ДатаПоставки" имеет значение Null; в противном случае отображается разность значений полей.

ПродажиЗаПолгода: Nz([Продажи1кв]) + Nz([Продажи2кв])

Создание поля "ПродажиЗаПолгода" и отображение итоговых значений в полях "Продажи1кв" и "Продажи2кв" с помощью функции Nz для преобразования всех значений Null в нули.

Выражение, использующее подчиненный запрос для создания вычисляемого поля

Для создания вычисляемого поля можно использовать вложенный запрос, также называемый подчиненным запросом. Выражение в приведенной ниже таблице является примером вычисляемого поля, получающего результаты от подчиненного запроса.

Выражение

Описание

Тип: (SELECT [Категория] FROM [Типы] WHERE [Товары].[КодТипа]=[Типы].[КодТипа])

Создание поля "Тип" и отображение значения поля "Категория", если значение поля "КодТипа" из таблицы "Типы" совпадает со значением поля "КодТипа" из таблицы "Товары".

Выражения, задающие условия отбора и ограничивающие число записей в результирующем наборе

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

Добавление условий в запрос

  1. В области навигации щелкните правой кнопкой мыши запрос, который вы хотите изменить, и выберите в контекстном меню команду Конструктор Изображение кнопки .

  2. В строке Условие отбора бланка запроса выберите ячейку в нужном столбце, а затем введите условие.

    Чтобы увеличить пространство для ввода выражения, нажмите клавиши SHIFT+F2 для отображения диалогового окна Область ввода.

    -или-

    На вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель  Изображение кнопки , чтобы запустить построитель выражений и создать нужное выражение.

Примечание : Не начинайте выражения, определяющие условия, с оператора =.

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

Выражения, сопоставляющие полные или частичные текстовые значения

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

Поле

Выражение

Описание

ГородНазначения

"Киев"

Отображает заказы, отправленные в Киев.

ГородНазначения

"Киев" Or "Минск"

Оператор Or используется для отображения заказов, отправленных в Киев или Минск.

СтранаНазначения

In("Канада", "США")

Оператор In используется для отображения заказов, отправленных в Канаду или США.

СтранаНазначения

Not "США"

Оператор Not используется для отображения заказов, отправленных во все страны, кроме США.

НаименованиеПродукта

Not Like "С*"

Оператор Not и подстановочный знак * используются для отображения товаров, названия которых не начинаются с буквы С.

НазваниеОрганизации

>="Н"

Отображение заказов, доставленных в компании, названия которых начинаются с букв от Н до Я.

КодТовара

Right([КодТовара]; 2)="99"

Функция Right используется для отображения заказов, последние цифры в значении поля "КодТовара" которых равны 99.

ИмяПолучателя

Like "С*"

Отображение заказов, доставленных клиентам, чьи имена начинаются с буквы С.

Выражения, использующие даты в условиях отбора

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

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

Поле

Выражение

Описание

ДатаПоставки

#02.02.07#

Отображает заказы, отправленные 2 февраля 2007 г.

ДатаПоставки

Date()

Отображает заказы, отправленные сегодня.

Срок

Between Date( ) And DateAdd("m"; 3; Date( ))

Оператор Between...And и функции DateAdd и Date используется для отображения заказов, у которых значение в поле "Срок" попадает в интервал между текущей датой и датой, отстоящей от нее на три месяца.

ДатаЗаказа

< Date( ) - 30

Функция Date используется для отображения заказов, полученных более 30 дней назад.

ДатаЗаказа

Year([ДатаЗаказа])=2007

Функция Year используется для отображения заказов, сделанных в 2007 г.

ДатаЗаказа

DatePart("q"; [ДатаЗаказа])=4

Функция DatePart используется для отображения заказов на четвертый квартал.

ДатаЗаказа

DateSerial(Year ([ДатаЗаказа]); Month([ДатаЗаказа])+1; 1)-1

Функции DateSerial, Year и Month отображают заказы на последний день каждого месяца.

ДатаЗаказа

Year([ДатаЗаказа]) = Year(Now()) And Month([ДатаЗаказа]) = Month(Now())

Функции Year и Month и оператор And используются для отображения заказов для текущего года и месяца.

ДатаПоставки

Between #05.01.2007# And #10.01.2007#

Оператор Between...And используется для отображения заказов, отправленных не ранее 5 и не позднее 10 января 2007 г.

Срок

Between Date( ) And DateAdd("M"; 3; Date( ))

Оператор Between...And используется для отображения заказов, которые должны быть выполнены в течение трех месяцев.

ДеньРождения

Month([ДеньРождения])=Month(Date())

Функции Month и Date используются для отображения сотрудников, чьи дни рождения приходятся на текущий месяц.

Выражения, которые сопоставляют отсутствующие значения (Null) или пустые строки

Приведенные в следующей таблице выражения работают с полями, в которых могут отсутствовать данные, т. е. содержаться значения Null или пустые строки. Значение Null означает отсутствие данных; оно не подразумевает наличие нулевого или какого-либо иного значения. В Access поддерживается концепция отсутствующих данных, т. к. это важно для целостности базы данных. В действительности сведения часто отсутствуют, хотя иногда только временно (например, если цена на новый товар еще не определена). Поэтому в базе данных, моделирующей некоторый реальный объект, например компанию, должна быть возможность хранения записей с отсутствующими сведениями. Для определения того, содержится ли в поле значение Null, используется функция IsNull, а функция Nz применяется для преобразования значений Null в нули.

Поле

Выражение

Описание

ОбластьДоставки

Is Null

Отображение заказов для клиентов, у которых отсутствует (равно Null) значение в поле "ОбластьДоставки".

ОбластьДоставки

Is Not Null

Отображение заказов для клиентов, у которых есть значение в поле "ОбластьДоставки".

Факс

""

Отображение заказов для клиентов, у которых нет факсимильного аппарата, то есть для тех клиентов, у которых поле "Факс" содержит пустую строку, а не значение Null.

Выражения, использующие шаблоны для поиска записей

Оператор Like обеспечивает гибкий поиск строк, соответствующих определенному шаблону, так как его можно использовать с подстановочными знаками. Например, подстановочный знак * (звездочка) соответствует любой последовательности знаков, что упрощает поиск всех имен, начинающихся с определенной буквы. Например, выражение Like "С*" используется для поиска всех имен, начинающихся на С.

Дополнительные сведения см. в статье Оператор Like.

Поле

Выражение

Описание

ИмяПолучателя

Like "С*"

Поиск всех записей, значение в поле "ИмяПолучателя" которых начинается с буквы С.

ИмяПолучателя

Like "*ов"

Поиск всех записей, значение в поле "ИмяПолучателя" которых заканчивается слогом "ов".

ИмяПолучателя

Like "[А-Г]*"

Поиск всех записей, значение в поле "ИмяПолучателя" которых начинается с букв А, Б, В или Г.

ИмяПолучателя

Like "*ар*"

Поиск всех записей, значение в поле "ИмяПолучателя" которых включает сочетание букв "ар".

ИмяПолучателя

Like "Григорий Верны?"

Поиск всех записей, значение в поле "ИмяПолучателя" которых начинается с "Григорий" и содержит вторую строку из 6 букв, в которой первые 5 букв — "Верны", а последняя буква неизвестна.

ИмяПолучателя

Not Like "А*"

Поиск всех записей, значение в поле "ИмяПолучателя" которых не начинается с буквы А.

Выражения, сопоставляющие строки на основе агрегатных функций по подмножеству

Агрегатные функции по подмножеству используются для вычисления выборочной суммы, выборочного среднего или выборочного подсчета значений. Например, может потребоваться подсчитать только значения, попадающие в определенный интервал или возвращающие значение "Да". Кроме того, может потребоваться подставить значение из другой таблицы. В примерах выражений ниже агрегатные функции по подмножеству используются для вычисления набора значений, а результат используется в качестве условий отбора в запросе.

Поле

Выражение

Описание

СтоимостьДоставки

> (DStDev("[СтоимостьДоставки]"; "Заказы") + DAvg("[СтоимостьДоставки]"; "Заказы"))

Функции DStDev и DAvg используются для отображения всех заказов, для которых стоимость доставки превышает среднюю с учетом стандартного отклонения.

Количество

> DAvg("[Количество]"; "[Заказано]")

Функция DAvg используется для отображения заказанных товаров, количество которых превышает среднее.

Выражения для поиска по результатам подчиненных запросов

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

Поле

Выражение

Результат

Цена

(SELECT [Цена] FROM [Товары] WHERE [НазваниеТовара] = "Анисовый сироп")

Товары, цена которых равна цене анисового сиропа.

Цена

>(SELECT AVG([Цена]) FROM [Товары])

Товары, цена которых превышает среднюю.

Зарплата

> ALL (SELECT [Зарплата] FROM [Сотрудники] WHERE ([Должность] LIKE "*Менеджер*") OR ([Должность] LIKE "*Вице-президент*"))

Заработная плата каждого торгового представителя, превышающая заработную плату сотрудников, занимающих должность менеджера или вице-президента.

ОбъемЗаказа: [Цена] * [Количество]

> (SELECT AVG([Цена] * [Количество]) FROM [Заказано])

Заказы, итоговая сумма которых превышает среднее значение для заказов.

Выражения, используемые в запросах на обновление

Запрос на обновление используется для изменения данных в одном или нескольких полях базы данных, например для замещения или удаления значений. Ниже показаны некоторые выражения, используемые в запросах на обновление. Они добавляются в строку Обновление бланка запроса для поля, которое вы хотите обновить.

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

Поле

Выражение

Результат

Должность

"Продавец"

Изменяет текстовое значение на "Продавец".

ДатаНачалаПроекта

#10.08.07#

Изменяет значение даты на 10 августа 2007 г.

НаПенсии

Да

Изменяет в логическом поле значения "Нет" на "Да".

ИнвНомер

"PN" & [ИнвНомер]

Добавляет строку "PN" к началу каждого инвентарного номера.

ИтогПозиции

[Цена] * [Количество]

Вычисляет произведение значений "Цена" и "Количество".

СтоимостьДоставки

[СтоимостьДоставки] * 1,5

Увеличивает стоимость доставки на 50 процентов.

Продажи

DSum("[Количество] * [Цена]";
"Заказано"; "[КодТовара]=" & [КодТовара])

Если значение поля "КодТовара" в текущей таблице совпадает со значением поля "КодТовара" в таблице "Заказано", обновляет итоговые значения продаж, рассчитываемые как произведение полей "Цена" и "Количество".

Индекс

Right([Индекс]; 5)

Обрезает левые знаки в поле, оставляя пять правых знаков.

Цена

Nz([Цена])

Заменяет значение Null (неизвестное или неопределенное значение) на нуль (0) в поле "Цена".

Выражения, используемые в инструкциях SQL

В Access в качестве языка запросов используется SQL. Каждый запрос, созданный в режиме конструктора, можно также представить на языке SQL. Чтобы просмотреть инструкцию SQL для любого запроса, выберите в меню Представление команду Режим SQL. В приведенной ниже таблице содержаться примеры инструкций SQL, использующие выражения.

Инструкция SQL, использующая выражение

Результат

SELECT [Имя],[Фамилия] FROM [Сотрудники] WHERE [Фамилия]="Бутусов"

Выводит значения полей "Имя" и "Фамилия" для сотрудников, имеющих фамилию Бутусов.

SELECT [КодТовара],[НазваниеТовара] FROM [Товары] WHERE [КодТипа]=Forms![Новые товары]![КодТипа];

Выводит значения полей "КодТовара" и "НазваниеТовара" из таблицы "Товары" для записей, у которых значение поля "КодТипа" совпадает со значением элемента управления "КодТипа" в открытой форме "Новые товары".

SELECT Avg([ОтпускнаяЦена]) AS [Средняя отпускная цена] FROM [Сведения о заказах] WHERE [Отпускная цена]>1000;

Вычисляет среднюю отпускную цену заказов, у которых значение в поле "ОтпускнаяЦена" превышает 1000, и отображает ее в поле "Средняя отпускная цена".

SELECT [КодТипа], Count([КодТовара]) AS [КоличествоТоваров] FROM [Товары] GROUP BY [КодТипа] HAVING Count([КодТовара])>10;

Отображает в поле "КоличествоТоваров" общее количество товаров для типов, содержащих более 10 товаров.

К началу страницы

Примеры выражений для задания значений по умолчанию

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

Задание значения по умолчанию для поля таблицы

  1. В области навигации щелкните правой кнопкой мыши таблицу, которую требуется изменить, и в контекстном меню выберите пункт Конструктор.

  2. Выберите поле, которое необходимо изменить, и на вкладке Общие щелкните ячейку свойства Значение по умолчанию.

  3. Введите выражение или нажмите кнопку Построить Кнопка "Построитель" справа от ячейки свойства, чтобы создать выражение с помощью построителя.

Если элемент управления связан с полем таблицы, которое имеет значение по умолчанию, значение по умолчанию элемента управления имеет приоритет.

Поле

Выражение

Значение поля по умолчанию

Количество

1

1

Область

"Московская"

Московская

Область

"Пушкино, Московская область"

Пушкино, Московская область (если значение содержит знаки пунктуации, его нужно заключить в прямые кавычки)

Факс

""

Пустая строка, чтобы обратить внимание на то, что данное поле должно быть пустым, а не содержащим значение Null.

ДатаЗаказа

Date( )

Текущая дата

Срок

Date() + 60

Дата, отстоящая от текущей на 60 дней

К началу страницы

Примеры выражений для правил проверки поля

С помощью выражения можно создать правило проверки для поля или элемента управления. Затем при вводе данных в поле или элемент управления эти данные будут проверяться на соответствие условию. Чтобы создать правило проверки, измените свойство ValidationRule поля или элемента управления. Следует также задать значение для свойства ValidationText, которое содержит текст, отображаемый при нарушении правила проверки. Если значение для свойства ValidationText не задано, будет выводиться сообщение об ошибке, используемое по умолчанию.

Добавление правила проверки для поля

  1. В области навигации щелкните правой кнопкой мыши таблицу, которую требуется изменить, и в контекстном меню выберите пункт Конструктор.

  2. Выберите поле, которое вы хотите изменить.

  3. Щелкните ячейку свойства Правило проверки, расположенную в нижней части конструктора таблиц.

  4. Введите выражение или нажмите кнопку Построить Кнопка "Построитель" справа от ячейки свойства, чтобы создать выражение с помощью построителя выражений.

    Примечание : При создании правила проверки не начинайте выражение с оператора =.

Ниже приведены примеры выражений для задания правил проверки в свойстве ValidationRule и соответствующий текст в свойстве ValidationText.

Свойство ValidationRule

Свойство ValidationText

<> 0

Введите значение, отличное от нуля.

0 Or > 100

Значение должно быть либо равно 0, либо больше 100.

Like "К???"

Значение должно содержать четыре знака и начинаться с буквы К.

< #01.01.2007#

Введите дату, предшествующую 01.01.2007.

>= #01.01.2007# And < #01.01.2008#

Укажите дату в 2007 году.

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

К началу страницы

Примеры выражений для условий в макросах

В некоторых случаях требуется выполнять макрокоманду или последовательность макрокоманд только при соблюдении некоторых условий. Предположим, необходимо, чтобы макрокоманда выполнялась только при значении 10 в текстовом поле "Счетчик". Для этого используется выражение, определяющее условие в столбце Условие макроса: [Счетчик]=10.

Задание условия для макрокоманды

  1. В области навигации щелкните правой кнопкой мыши макрос и выберите в контекстном меню команду Конструктор.

  2. Если столбец Условие в построителе макросов не отображается, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Условия.

  3. Выберите ячейку Условие рядом с макрокомандой, которую вы хотите изменить, а затем введите условное выражение.

  4. Сохраните изменения и закройте макрос.

Как и в случае со свойством Validation Rule, выражение в столбце Условие является условным выражением. Оно должно возвращать логическое значение True или False. Макрокоманда будет выполнена, только если условие возвращает значение True.

Выражение

Значение

[Город]="Париж"

Поле "Город" в форме, из которой запускается макрос, имеет значение "Париж".

DCount("[КодЗаказа]"; "Заказы") > 35

Количество записей в поле "КодЗаказа" таблицы "Заказы" превышает 35.

DCount("*"; "[Заказано]"; "[КодЗаказа]=" & Forms![Заказы]![КодЗаказа]) > 3

В таблице "Заказано" есть больше трех записей, у которых значение поля "КодЗаказа" совпадает со значением поля "КодЗаказа" в форме "Заказы".

[ДатаПоставки] Between #2-фев-2007# And #2-мар-2007#

Значение поля "ДатаПоставки" в форме, из которой запускается макрос, попадает в интервал с 2 февраля по 2 марта 2007 г.

Forms![Товары]![НаСкладе] < 5

Значение поля "НаСкладе" в форме "Товары" меньше 5.

IsNull([Имя])

Поле "Имя" в форме, из которой запускается макрос, имеет значение Null (не заполнено). Это выражение эквивалентно следующему: [Имя] Is Null.

[Страна]="Литва" And Forms![СуммаПродаж]![ОбъемЗаказов] > 100

Поле "Страна" в форме, из которой запускается макрос, содержит значение "Литва", а значение поля "ОбъемЗаказов" в форме "СуммаПродаж" превышает 100.

[Страна] In ("Латвия", "Литва", "Эстония") And Len([Индекс])<>5

Поле "Страна" в форме, из которой запускается макрос, имеет значение "Латвия", "Литва" или "Эстония", а почтовый индекс не содержит 5 символов.

MsgBox("Подтвердить изменения?";1)=1

Нажата кнопка ОК в диалоговом окне функции MsgBox. Если нажата кнопка Отмена, эта макрокоманда будет пропущена.

Примечание : Чтобы временно пропустить макрокоманду, введите в качестве условия False. Такой прием часто используют при отладке макросов.

К началу страницы

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×