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

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

В этой статье

Формы и отчеты

Все выражения для форм и отчетов

Операции с текстом; Значения в других элементах управления; Операции с датой Колонтитулы; Значения count, sum и average; Условия только для двух значений Арифметические операции; Агрегатные функции SQL

Запросы и фильтры

Все выражения для запросов и фильтров

Операции с текстом; Агрегатные функции SQL; Сопоставление текстовых значений; Сопоставление шаблонов записей с помощью like; Запросы на обновление Арифметические операции; Поиск отсутствующих данных; Критерии даты соответствия; Сопоставление строк с помощью агрегатов SQL; Sql Операции с датами; Вычисляемые поля с вложенными запросами; Поля с отсутствующими данными; Сопоставление полей с вложенными запросами

Таблицы

Все выражения для таблиц

Значения по умолчанию для полей Правило проверки поля.

Макросы

Все выражения для макросов

Формы и отчеты

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

Примечание

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

Операции с текстом

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

Выражение Результат
="N/A" Отображает "Н/Д".
=[FirstName] & " " & [LastName] Отображает значения, хранящиеся в полях таблицы FirstName и LastName. В этом примере & оператор используется для объединения поля FirstName, пробела (заключенного в кавычки) и поля LastName.
=Left([ProductName], 1) Использует функцию Left для отображения первого символа значения в поле или элементе управления с именем ProductName.
=Right([AssetCode], 2) Использует функцию Right для отображения последних двух символов значения в поле или элементе управления с именем AssetCode.
=Trim([Address]) Использует функцию Trim для отображения значения элемента управления после удаления начальных Address и конечных пробелов.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) Использует функцию IIf для отображения значений City элементов управления и , PostalCode если Region элемент управления имеет значение NULL. В противном случае отображаются значения Cityэлементов управления , Regionи PostalCode , разделенные пробелами.
=[City] & (" " + [Region]) & " " & [PostalCode] + Использует оператор и распространение null для отображения значений City элементов управления и PostalCode , если значение в Region поле или элементе управления имеет значение NULL. В противном случае отображаются значения Cityполей или элементов управления , Regionи PostalCode , разделенные пробелами. Распространение null означает, что если какая-либо часть выражения имеет значение NULL, то все выражение имеет значение NULL. Оператор + поддерживает распространение значений NULL, но & оператор — нет.

В начало

Колонтитулы

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

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

Выражение Результат
=[Page] 1
="Page " & [Page] Страница 1
="Page " & [Page] & " of " & [Pages] Страница 1 из 3
=[Page] & " of " & [Pages] & " Pages" 1 из 3 стр.
=[Page] & "/" & [Pages] & " Pages" 1/3 стр.
=[Country/region] & " - " & [Page] UK - 1
=Format([Page], "000") 001
="Printed on: " & Date() Напечатано: 12/31/17

В начало

Арифметические операции

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

Выражение Результат
=[Subtotal]+[Freight] Сумма значений в полях или элементах управления "СуммаЗаказа" и "СтоимостьДоставки".
=[RequiredDate]-[ShippedDate] Интервал между значениями даты в полях или элементах управления "Срок" и "ДатаПоставки".
=[Price]*1.06 Результат умножения значения поля или элемента управления "Цена" на 1,06 (добавление 6 процентов к значению "Цена").
=[Quantity]*[Price] Результат умножения значений в полях или элементах управления Quantity и Price.
=[EmployeeTotal]/[CountryRegionTotal] Частное от деления значений полей или элементов управления EmployeeTotal и CountryRegionTotal.

Примечание

Если в выражении используется арифметический оператор (+, -, *или /), а один из элементов управления имеет значение NULL, результат всего выражения будет иметь значение NULL. Это называется распространением null. Если элемент управления может иметь значение NULL, можно избежать распространения значений NULL с помощью функции Nz для преобразования значения NULL в ноль. Например, используйте =Nz([Subtotal])+Nz([Freight]).

В начало

Значения в других элементах управления

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

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

Выражение Результат
=Forms![Orders]![OrderID] Значение элемента управления "КодЗаказа" в форме "Заказы".
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] Значение элемента управления "ОтпускнаяЦена" из подчиненной формы "Заказано" в форме "Заказы".
=Forms![Orders]![Orders Subform]![ProductID].Column(2) Значение третьего столбца поля "КодТовара" (список из нескольких столбцов в подчиненной форме "Заказано") в форме "Заказы". (Обратите внимание, что индекс 0 является ссылкой на первый столбец, 1 — на второй и т. д.).
=Forms![Orders]![Orders Subform]![Price] * 1.06 Результат умножения значения элемента управления "Цена" подчиненной формы "Заказано" в форме "Заказы" на 1,06 (добавление 6 процентов к значению "Цена").
=Parent![OrderID] Значение элемента управления "КодЗаказа" в форме, которая является главной для текущей подчиненной формы.

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

Выражение Результат
=Report![Invoice]![OrderID] Значение элемента управления "КодЗаказа" в отчете "Счет".
=Report![Summary]![Summary Subreport]![SalesTotal] Значение элемента управления "Сумма заказов" из подчиненного отчета "Подотчет" в отчете "Итоги".
=Parent![OrderID] Значение элемента управления "КодЗаказа" в отчете, который является главным для текущего подчиненного отчета.

В начало

Количество значений, сумма и среднее

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

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

Выражение Описание
=Avg([Freight]) Функция Avg используется для отображения средних значений поля таблицы или элемента управления "СтоимостьДоставки".
=Count([OrderID]) Функция Count используется для отображения числа записей в элементе управления "КодЗаказа".
=Sum([Sales]) Функция Sum используется для отображения суммы значений в элементе управления "Продажи".
=Sum([Quantity]*[Price]) Функция Sum используется для отображения суммы произведения значений элементов управления "Количество" и "Цена".
=[Sales]/Sum([Sales])*100 Отображает процент продаж путем деления значения Sales элемента управления на сумму всех значений в элементе Sales управления. Если для свойства элемента управления задано Format значение Percent, не включайте *100 в выражение .

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

В начало

Агрегатные функции SQL

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

Выражение Описание
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) Функция DLookup используется для возвращения значения из полей ContactName в таблице "Поставщики", для которых значение в поле SupplierID в таблице совпадает со значением элемента управления SupplierID в форме "Поставщики".
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) Функция DLookup используется для возвращения значения из полей ContactName в таблице "Поставщики", для которых значение в поле SupplierID в таблице совпадает со значением элемента управления SupplierID в форме "НовыеПоставщики".
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") Функция DSum используется для возвращения значений из поля OrderAmount таблицы "Заказы", для которых значение поля CustomerID равно "РАТТС".
=DCount("[Retired]","[Assets]","[Retired]=Yes") Функция DCount возвращает количество значений Yes в поле Retired (логическое поле) в таблице Assets.

В начало

Операции с датами

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

Выражение Описание
=Date() Использует функцию Date для отображения текущей mm-dd-yyдаты в виде , где mm — месяц (от 1 до 12), dd день (от 1 до 31) и yy две последние цифры года (1980–2099).
=Format(Now(), "ww") Использует функцию Формат для отображения номера недели года для текущей даты, где ww представляет недели от 1 до 53.
=DatePart("yyyy", [OrderDate]) Функция DatePart используется для отображения значения года, содержащегося в элементе управления "ДатаЗаказа", в четырехзначном формате.
=DateAdd("y", -10, [PromisedDate]) Функция DateAdd используется для отображения даты, предшествующей на 10 дней значению даты в элементе управления "УсловленнаяДата".
=DateDiff("d", [OrderDate], [ShippedDate]) Функция DateDiff используется для отображения разницы в днях между значениями дат в элементах управления "ДатаЗаказа" и "ДатаПоставки".
=[InvoiceDate] + 30 Арифметическая операция используется для вычисления даты, которая на 30 дней позднее даты в поле или элементе управления InvoiceDate.

В начало

Условия для выбора одного из двух значений

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

Выражение Описание
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") Использует функцию IIf (Immediate If) для отображения сообщения "Order Confirmed", если значение элемента управления Confirmed равно Yes; в противном случае отображается сообщение "Order Not Confirmed."
=IIf(IsNull([Country/region]), " ", [Country]) Функции IIf и IsNull используются для отображения пустой строки, если элемент управления "Страна" имеет значение Null; в противном случае выводится его значение.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) Функции IIf и IsNull используются для отображения значений элементов управления "Город" и "Индекс", если элемент управления "Область" имеет значение Null; в противном случае отображаются значения в полях или элементах управления "Город", "Область" и "Индекс".
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) Функции IIf и IsNull используются для отображения сообщения "Проверьте отсутствующую дату", если результат вычитания значения элемента управления "Срок" из значения "ДатаПоставки" равен пустому значению (Null); в противном случае отображается интервал между значениями дат "Срок" и "ДатаПоставки".

В начало

Запросы и фильтры

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

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

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

Текстовые операции в запросах

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

Выражение Описание
FullName: [FirstName] & " " & [LastName] Создание поля "ПолноеИмя", отображающего значения полей "Имя" и "Фамилия", разделенные пробелом.
Address2: [City] & " " & [Region] & " " & [PostalCode] Создание поля "Адрес2", отображающего значения полей "Город", "Область" и "Индекс", разделенные пробелами.
ProductInitial: Left([ProductName], 1) Создание поля ProductInitial и отображение в нем с помощью функции Left первого знака значения в поле ProductName.
TypeCode: Right([AssetCode], 2) Создание поля TypeCode и отображение с помощью функции Right последних двух знаков в значении поля AssetCode.
AreaCode: Mid([Phone],2,3) Создание поля AreaCode и отображение с помощью функции Mid трех знаков, начиная со второго, в значении поля Phone.
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 Присвоение вычисляемому полю имени ExtendedPrice и вычисление итога по позиции с примененной скидкой с помощью функции CCur.

В начало

Арифметические операции в запросах

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

Выражение Описание
PrimeFreight: [Freight] * 1.1 Создание поля "СрочнаяДоставка" и отображение стоимости доставки с 10-процентной надбавкой.
OrderAmount: [Quantity] * [UnitPrice] Создание поля "ОбъемЗаказа" и отображение произведения значений полей "Количество" и "Цена".
LeadTime: [RequiredDate] - [ShippedDate] Создание поля "ВремяДоставки" и отображение разности значений полей "Срок" и "ДатаПоставки".
TotalStock: [UnitsInStock]+[UnitsOnOrder] Создание поля "ВсегоВНаличии" и отображение суммы значений полей "НаСкладе" и "Ожидается".
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Создает поле с именем FreightPercentage, а затем отображает процент расходов на доставку в каждом итоговом итоге. Это выражение использует функцию Sum для суммирования значений Freight в поле, а затем делит эти итоги на сумму значений Subtotal в поле. Чтобы использовать это выражение, преобразуйте запрос выбора в запрос итогов. Необходимо использовать строку Итого в конструкторской сетке и присвоить ячейке Всего для этого поля значение Expression. Дополнительные сведения о создании запроса итогов см. в разделе Суммирование данных с помощью запроса. Если для свойства поля задано Format значение , не включайте *100.Percent

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

В начало

Операции с датой в запросах

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

Выражение Описание
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) Создание поля LagTime и отображение с помощью функции DateDiff числа дней между датой размещения заказа и датой поставки.
YearHired: DatePart("yyyy",[HireDate]) Создание поля "ГодНайма" и отображение с помощью функции DatePart года найма сотрудника.
MinusThirty: Date( )- 30 Создание поля MinusThirty и отображение с помощью функции Date даты за 30 дней до текущей.

В начало

Агрегатные функции SQL в запросах

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

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

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

Выражение Описание
RowCount: Count(*) Создание поля RowCount и подсчет с помощью функции Count числа записей в запросе, включая записи с пустыми полями.
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Создает поле с именем FreightPercentage, а затем вычисляет процент расходов на доставку в каждой промежуточный итог путем деления суммы значений в Freight поле на сумму значений в Subtotal поле. В этом примере используется Sum функция . Это выражение следует использовать с итоговым запросом. Если для свойства поля задано Format значение , не включайте *100.Percent Дополнительные сведения о создании запроса итогов см. в разделе Суммирование данных с помощью запроса.
AverageFreight: DAvg("[Freight]", "[Orders]") Создание поля AverageFreight и вычисление с помощью функции DAvg средней стоимости доставки по всем заказам, объединенным в итоговом запросе.

В начало

Поля с недостающими данными

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

Выражение Описание
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) Создание поля CurrentCountryRegion и отображение с помощью функций IIf и IsNull пустой строки в поле, если поле CountryRegion содержит значение Null; в противном случае отображается значение поля CountryRegion.
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) Создание поля LeadTime и отображение с помощью функций IIf и IsNull сообщения "Проверьте отсутствующую дату", если одно из полей RequiredDate или ShippedDate имеет значение Null; в противном случае отображается разность значений полей.
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) Создание поля SixMonthSales и отображение итоговых значений в полях Qtr1Sales и Qtr2Sales с помощью функции Nz для преобразования всех значений Null в нули.

В начало

Создание вычисляемых полей с помощью вложенных запросов

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

Выражение Описание
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) Создание поля Cat и отображение значения поля CategoryName, если значение поля CategoryID из таблицы "Категории" совпадает со значением поля CategoryID из таблицы "Товары".

В начало

Поиск совпадений в текстовых значениях

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

Поле Выражение Описание
ShipCity "London" Отображает заказы, отправленные в Киев.
ГородНазначения "London" Or "Hedge End" Использует оператор для Or отображения заказов, отправляемых в Лондон или Хедж-Энд.
ShipCountryRegion In("Canada", "UK") Использует оператор для In отображения заказов, отправленных в Канаду или Великобританию.
ShipCountryRegion Not "USA" Использует оператор для Not отображения заказов, отправляемых в страны или регионы, отличные от США.
ProductName Not Like "C*" Not Использует оператор и * подстановочный знак для отображения продуктов, имена которых не начинаются с C.
CompanyName >="N" Отображает заказы, отправляемые компаниям, названия которых начинаются с букв N через Z.
ProductCode Right([ProductCode], 2)="99" Использует функцию Right для отображения заказов со значениями ProductCode, которые заканчиваются на 99.
ИмяПолучателя Like "S*" Отображает заказы, отправляемые клиентам, имена которых начинаются с буквы S.

В начало

Условия для дат

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

Поле Выражение Описание
ShippedDate #2/2/2017# Отображает заказы, отправленные 2 февраля 2017 г.
ShippedDate Date() Отображает заказы, отправленные сегодня.
RequiredDate Between Date( ) And DateAdd("m", 3, Date( )) Between...And Использует оператор и функции DateAdd и Date для отображения заказов, необходимых в период с текущей даты до трех месяцев с сегодняшней даты.
OrderDate < Date( ) - 30 Функция Date используется для отображения заказов, которым больше 30 дней.
OrderDate Year([OrderDate])=2017 Функция Year используется для отображения заказов, сделанных в 2017 г.
OrderDate DatePart("q", [OrderDate])=4 Функция DatePart используется для отображения заказов на четвертый квартал.
OrderDate DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 Функции DateSerial, Year и Month используются для отображения заказов на последний день каждого месяца.
OrderDate Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) Функции Year и Month и оператор And используются для отображения заказов для текущего года и месяца.
ShippedDate Between #1/5/2017# And #1/10/2017# Использует оператор для Between...Andотображения заказов, отправленных не ранее 5 января 2017 года и не позднее 10 января 2017 года.
RequiredDate Between Date( ) And DateAdd("M", 3, Date( )) Использует оператор для Between...And отображения заказов, необходимых в период с текущей даты до трех месяцев с сегодняшней даты.
BirthDate Month([BirthDate])=Month(Date()) Функции Month и Date используются для отображения сотрудников, чьи дни рождения приходятся на текущий месяц.

В начало

Поиск записей с недостающими данными

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

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

В начало

Поиск совпадений в шаблонах записей с помощью оператора Like

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

Поле Выражение Описание
ShipName Like "S*" Поиск всех записей, значение в поле "ИмяПолучателя" которых начинается с буквы С.
ИмяПолучателя Like "*Imports" Поиск всех записей, значение в поле "ИмяПолучателя" которых заканчивается слогом "ов".
ShipName Like "[A-D]*" Поиск всех записей, значение в поле ShipName которых начинается с букв А, Б, В или Г.
ShipName Like "*ar*" Поиск всех записей, значение в поле ShipName которых включает сочетание букв "ар".
ИмяПолучателя Like "Maison Dewe?" Поиск всех записей, значение в поле "ИмяПолучателя" которых начинается с "Григорий" и содержит вторую строку из 6 букв, в которой первые 5 букв — "Верны", а последняя буква неизвестна.
ИмяПолучателя Not Like "A*" Поиск всех записей, значение в поле ShipName которых не начинается с буквы A.

В начало

Подбор строк с помощью агрегатных функций SQL

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

Поле Выражение Описание
Freight > (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) Функции DStDev и DAvg используются для отображения всех заказов, для которых стоимость доставки превышает среднюю с учетом стандартного отклонения.
Quantity > DAvg("[Quantity]", "[Order Details]") Функция DAvg используется для отображения заказанных товаров, количество которых превышает среднее.

В начало

Подбор полей с помощью вложенных запросов

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

Поле Выражение Отображает
UnitPrice (SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") Товары, цена которых равна цене анисового сиропа.
Цена >(SELECT AVG([UnitPrice]) FROM [Products]) Товары, цена которых превышает среднюю.
Зарплата > ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) Заработная плата каждого торгового представителя, превышающая заработную плату сотрудников, занимающих должность менеджера или вице-президента.
ОбъемЗаказа: [Цена] * [Количество] > (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) Заказы, итоговая сумма которых превышает среднее значение для заказов.

В начало

Запросы на обновление

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

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

Поле Выражение Результат
Название "Salesperson" Изменяет текстовое значение на "Продавец".
ProjectStart #8/10/17# Изменяет значение даты на 10 августа 2017 г.
Поддержка прекращена. Yes Изменяет в логическом поле значения "Нет" на "Да".
ИнвНомер "PN" & [PartNumber] Добавляет строку "PN" к началу каждого инвентарного номера.
ИтогПозиции [UnitPrice] * [Quantity] Вычисляет произведение значений "Цена" и "Количество".
СтоимостьДоставки [Freight] * 1.5 Увеличивает стоимость доставки на 50 процентов.
Продажи DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) Если значение поля ProductID в текущей таблице совпадает со значением поля ProductID в таблице "Заказано", обновляет итоговые значения продаж, рассчитываемые как произведение полей Quantity и UnitPrice.
ShipPostalCode Right([ShipPostalCode], 5) Обрезает левые знаки в поле, оставляя пять правых знаков.
UnitPrice Nz([UnitPrice]) Заменяет значение Null (неизвестное или неопределенное значение) на нуль (0) в поле UnitPrice.

В начало

Инструкции SQL

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

Инструкция SQL, использующая выражение Результат
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; Выводит значения полей "Имя" и "Фамилия" для сотрудников, имеющих фамилию Бутусов.
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; Выводит значения полей "КодТовара" и "НазваниеТовара" из таблицы "Товары" для записей, у которых значение поля "КодТипа" совпадает со значением элемента управления "КодТипа" в открытой форме "Новые товары".
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; Вычисляет среднюю отпускную цену заказов, у которых значение в поле "ОтпускнаяЦена" превышает 1000, и отображает ее в поле "Средняя отпускная цена".
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; Отображает в поле CountOfProductID общее количество товаров для типов, содержащих более 10 товаров.

В начало

Выражения для таблиц

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

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

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

Поле Выражение Значение поля по умолчанию
Quantity 1 1
Область "MT" Московская
Область "New York, N.Y." Пушкино, Московская область (Если значение содержит знаки пунктуации, его нужно заключить в прямые кавычки).
Факс "" Пустая строка, чтобы обратить внимание на то, что данное поле должно быть пустым, а не содержащим значение Null.
Дата заказа Date( ) Текущая дата
Срок Date() + 60 Дата, отстоящая от текущей на 60 дней

В начало

Правило проверки поля.

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

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

Свойство ValidationRule Свойство ValidationText
<> 0 Введите значение, отличное от нуля.
0 Or > 100 Значение должно быть либо равно 0, либо больше 100.
Like "K???" Значение должно содержать четыре знака и начинаться с буквы K.
< #1/1/2017# Введите дату, предшествующую 01.01.2017.
>= #1/1/2017# And < #1/1/2008# Укажите дату в 2017 г.

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

В начало

Выражения для макросов

В некоторых случаях выполнять макрокоманду или набор макрокоманд в макросе нужно только в том случае, если выполнено определенное условие. Предположим, вы хотите, чтобы макрокоманда выполнялась только в том случае, если значение текстового поля счетчика равно 10. Выражение используется для определения условия в блоке If:

[Counter]=10

Как и в случае со свойством ValidationRule , выражение в блоке If является условным выражением. Он должен разрешаться в или TrueFalse. Макрокоманда будет выполнена, только если условие возвращает значение True.

Используйте это выражение для выполнения действия. If
[City]="Paris" Поле "Город" в форме, из которой запускается макрос, имеет значение "Париж".
DCount("[OrderID]", "Orders") > 35 Количество записей в поле "КодЗаказа" таблицы "Заказы" превышает 35.
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 В таблице "Заказано" есть больше трех записей, у которых значение поля OrderID совпадает со значением поля OrderID в форме "Заказы".
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# Значение поля ShippedDate в форме, из которой запускается макрос, попадает в интервал со 2 февраля по 2 марта 2017 г.
Forms![Products]![UnitsInStock] < 5 Значение поля "НаСкладе" в форме "Товары" меньше 5.
IsNull([FirstName]) Поле FirstName в форме, из которой запускается макрос, имеет значение Null (не заполнено). Это выражение эквивалентно следующему: [Имя] Is Null.
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 Поле CountryRegion в форме, из которой запускается макрос, содержит значение "Литва", а значение поля TotalOrds в форме SalesTotals превышает 100.
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 Поле CountryRegion в форме, из которой запускается макрос, имеет значение France, Italy или Spain, а почтовый индекс не содержит 5 символов.
MsgBox("Confirm changes?",1)=1 Нажмите кнопку ОК в диалоговом окне функции MsgBox. Если нажата кнопка Отмена, эта макрокоманда будет пропущена.

В начало

См. также