С помощью выражений можно выполнять разнообразные операции с данными. Например, вы можете определить, сколько дней прошло с момента отправки заказа, или объединить содержимое полей FirstName и LastName и поместить результат в поле FullName. Разделы этой статьи содержат пошаговые инструкции по созданию выражений.
В этой статье
Вычисление значений элементов управления в формах и отчетах
При использовании выражения в качестве источника данных элемента управления создается вычисляемый элемент управления. Предположим, например, что имеется отчет, в котором отображаются товары на складе, и необходимо создать в нижнем колонтитуле итог для суммирования данных по всем строкам отчета.
Чтобы вычислить итог, поместите элемент управления "поле" в нижний колонтитул отчета и настройте для свойства ControlSource этого поля следующее выражение:
=Sum([table_field])
В этом случае — это имя поля, table_field содержащего значения промежуточных итогов. Оно может находиться в таблице или запросе. Функция Sum вычисляет итог для всех значений table_field.
ПРОЦЕДУРА
- В области навигации щелкните правой кнопкой мыши форму, которую необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
- Выделите элемент управления, в который необходимо ввести выражение.
- Если окно свойств не отображается, нажмите клавишу F4.
- Чтобы вручную создать выражение, на вкладке Данные на странице свойств щелкните свойство ControlSource текстового поля, а затем введите
=оставшуюся часть выражения. Например, чтобы вычислить промежуточный итог, показанный выше, введите=Sum([table_field]), убедившись, что вы замените имя поля наtable_field. - Чтобы создать выражение с помощью построителя выражений, щелкните изображение кнопки Сборка
в поле свойства.
После ввода выражения окно свойств будет выглядеть так:
Использование выражений в условиях запросов
Вы можете использовать условия, чтобы ограничить результаты запроса. Введите условия в виде выражения, и приложение Access вернет только соответствующие ему строки.
Предположим, вы хотите просмотреть все заказы с датой отгрузки в течение первых трех месяцев 2017 г. Чтобы задать условие, введите следующее выражение в ячейку Условия столбца "Дата и время" в запросе. В нашем примере используется столбец "Дата и время" с именем ShippedDate. Чтобы определить диапазон дат, введите следующее условие:
Between #1/1/2017# And #3/31/2017#
Столбец ДатаИсполнения будет выглядеть подобным образом:
Для каждой записи в таблице заказов, для которой значение в столбце ShippedDate попадает в указанный интервал дат, будет создана запись в выходных данных запроса. Обратите внимание, что в выражении вы заключаете даты со знаками фунта (#). Значение между знаками решетки трактуется в Access как значение с типом данных "Дата и время". Это означает, что с такими значениями могут производиться соответствующие вычисления, например вычитание одной даты из другой.
ПРОЦЕДУРА
- В области навигации щелкните правой кнопкой мыши запрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
- Выберите ячейку Условия в столбце, для которого необходимо создать условие отбора.
- Чтобы создать выражение вручную, введите выражение условия. Не следует предшествовать выражению условия с
=помощью оператора . - Чтобы создать выражение с помощью построителя выражений, на ленте щелкните Конструктор, а затем в группе Настройка запросов нажмите
построителя.
Если для редактирования выражения вам требуется больше места, установите курсор в ячейку Условие отбора, а затем нажмите сочетание клавиш SHIFT+F2, чтобы открыть окно Область ввода:
Совет Чтобы сделать текст более удобочитаемым, выберите Шрифт.
Создание вычисляемого поля в запросе
Предположим, что вы разрабатываете запрос и хотите отобразить результаты вычисления с помощью других полей в запросе. Чтобы создать вычисляемое поле, нужно ввести выражение в пустую ячейку в строке Поле запроса. Допустим, в вашем запросе есть поля Количество и Цена. Их значения требуется перемножить, чтобы получить вычисляемое поле Сумма. Для этого в строке Поле запроса введите следующее выражение:
Extended Price: [Quantity] * [Unit Price]
Префиксирование выражения с текстом Extended Price: называет новый столбец Extended Price. Это имя часто называется псевдонимом. Если не указать псевдоним, Access создаст его, например Expr1.
При выполнении запроса в Access выполняется расчет каждой строки, как показано ниже:
ПРОЦЕДУРА
- В области навигации щелкните правой кнопкой мыши запрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
- Выберите ячейку Поле в столбце, в котором необходимо создать вычисляемое поле.
- Чтобы создать выражение вручную, просто введите его.
Не следует предшествовать выражению условия с=помощью оператора ; вместо этого начните выражение с описательной метки, за которой следует двоеточие. Например, введитеExtended Price:, чтобы указать метку для выражения, которое создает вычисляемое поле с именем Extended Price. После двоеточия введите условие для выражения. - Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель.
Создание вычисляемого поля в таблице
В Access можно создать вычисляемое поле в таблице. Благодаря этому для выполнения расчетов не придется создавать отдельный запрос. Например, если у вас есть таблица, в которой перечислены количество, цена и налоговая ставка для каждой позиции заказа, вы можете добавить вычисляемое поле общей стоимости:
[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))
В вычислении нельзя использовать поля из других таблиц или запросов, а результаты вычислений доступны только для чтения.
ПРОЦЕДУРА
Откройте таблицу, дважды щелкнув ее в области навигации.
Прокрутите таблицу по горизонтали до крайнего правого столбца и нажмите в заголовке столбца кнопку Щелкните, чтобы добавить.
В появившемся списке выберите пункт Вычисляемое поле и укажите тип данных результата. В Accessотображается построитель выражений.
Введите формулу вычисления, которую вы хотите использовать для этого поля, например:
[Quantity] * [Unit Price]Для вычисляемого поля выражение не начинается со знака равенства (=).
Нажмите кнопку ОК.
Приложение Access добавит вычисляемое поле и выделит его заголовок, чтобы можно было ввести имя поля.Введите имя вычисляемого поля и нажмите клавишу ВВОД.
Задание значений по умолчанию для поля таблицы
С помощью выражения можно задать для поля таблицы значение по умолчанию, которое Access будет использовать для новых записей, если не предоставлено другое значение. Допустим, вы хотите автоматически вставлять дату и время в поле "Дата_заказа" при добавлении новой записи. Для этого можно использовать следующее выражение:
Now()
ПРОЦЕДУРА
- В области навигации дважды щелкните таблицу, которую нужно изменить.
Таблица откроется в режиме таблицы. - Выберите поле, которое требуется изменить.
- На ленте щелкните Поля таблицы, а затем в группе Свойства выберите значение по умолчанию. В Accessотображается построитель выражений.
- Введите выражение в поле, убедившись, что выражение начинается со знака равенства (=).
Примечание. При связывании элемента управления с полем таблицы действует следующее правило: если для элемента управления и для поля заданы значения по умолчанию, значение по умолчанию элемента управления имеет приоритет.
Задание значений по умолчанию для элементов управления
Другим объектом, где часто применяются выражения, является свойство Значение по умолчанию элемента управления. Свойство Значение по умолчанию элемента управления аналогично свойству Значение по умолчанию поля в таблице. Например, чтобы использовать текущую дату в качестве значения по умолчанию для текстового поля, вы можете указать следующее выражение:
Date()
В этом выражении используется функция Date, которая возвращает текущую дату, но не время. Если текстовое поле привязано к полю таблицы, которое имеет значение по умолчанию, то значение по умолчанию элемента управления будет иметь приоритет перед значением по умолчанию поля таблицы. Часто имеет смысл настроить свойство Значение по умолчанию для поля таблицы. Если в этом случае к одному и полю таблицы привязано несколько элементов управления в разных формах, каждый из них будет иметь одно значение по умолчанию, и ввод данных во всех формах будет согласованным.
ПРОЦЕДУРА
- В области навигации щелкните правой кнопкой мыши форму или отчет, которые необходимо изменить, и выберите в контекстном меню пункт Конструктор или Режим макета.
- Выделите элемент управления, который необходимо изменить.
- Если окно свойств не отображается, нажмите клавишу F4.
- На вкладке Все окна свойств перейдите к ячейке свойства Значение по умолчанию.
- Введите выражение или щелкните изображение кнопки Сборка
в поле свойства, чтобы создать выражение с помощью построителя выражений.
Добавление правила проверки в поле таблицы или запись
Выражения очень полезны для проверки данных по мере их ввода в базу данных, сохраняя недопустимые данные. В таблицах есть два типа правил проверки: правила проверки полей (которые запрещают пользователям вводить неверные данные в одном поле) и правила проверки записей (которые запрещают пользователям создавать записи, которые не соответствуют правилу проверки). В обоих случаях используются выражения.
Предположим, что в таблице Inventory имеется поле Units On Hand и требуется задать условие, разрешающее пользователям вводить только неотрицательные значения. Иначе говоря, количество товара никогда не может быть отрицательным. Это можно сделать, указав для поля Units On Hand следующее правило проверки:
>=0
ПРОЦЕДУРА: ввод правила проверки для поля или записи
В области навигации дважды щелкните таблицу, которую нужно изменить. Таблица откроется в режиме таблицы.
При вводе условия на значение поля выделите поле, которое необходимо изменить.
На ленте щелкните Поля таблицы, а затем в группе Проверка полей щелкните Проверка, а затем — Правило проверки поля или Правило проверки. В Accessотображается построитель выражений.
Начните вводить необходимые условия. Например, для условия на значение поля, требующего ввода неотрицательных значений, введите следующее выражение:
>=0Не начинайте выражение со знака равенства (=).
Выражения правил проверки являются логическими, что означает, что они являются или TrueFalse для любого заданного входного значения. Правило проверки должно быть True для значения, иначе Access не сохраняет входные данные и отображает сообщение проверки, указывающее на ошибку. В этом примере, если ввести значение поля Units On Hand меньше нуля, правило проверки будет Falseравно , а Access не принимает значение . Если вы не ввели сообщение об ошибке, как описано в предыдущем разделе, Access отобразит собственное сообщение, в котором указано, что введенное значение запрещено правилом проверки для поля.
ПРОЦЕДУРА: ввод сообщения проверки правильности
Чтобы сделать базу данных более удобной в использовании, можно задать собственные сообщения проверки правильности. Эти сообщения будут использоваться вместо стандартных сообщений, выводимых приложением Access, когда данные не соответствуют условию. В сообщение можно включить сведения, помогающие пользователю ввести правильные данные, например "Значение в поле Units On Hand не может быть отрицательным".
- В области навигации дважды щелкните таблицу, которую нужно изменить.
Таблица откроется в режиме таблицы. - При создании сообщения для условия на значение поля выделите соответствующее поле.
- На ленте щелкните Поля таблицы, а затем в группе Проверка полей щелкните Проверка, а затем — Сообщение проверки поля или Сообщение проверки.
- В диалоговом окне Введите сообщение о проверке введите сообщение, которое будет выводиться, если данные не соответствуют условию на значение, и нажмите кнопку ОК.
Добавление правила проверки в элемент управления
Как и у полей таблицы и записей, у элементов управления есть свойство ValidationRule (Правило проверки), для которого можно создать выражение. Предположим, что используется форма ввода интервала дат для отчета и требуется, чтобы начальная дата была не раньше, чем 01.01.2017. Вы можете задать свойства Правило проверки и Текст проверки для текстового поля, в котором введите следующую начальную дату:
| Свойство. | Параметр |
|---|---|
| Условие на значение | >=#1/1/2017# |
| Сообщение об ошибке | Невозможно ввести дату ранее 01.01.2017. |
Если вы попытаетесь ввести дату раньше 1/1/2017, появится сообщение, в котором отображается текст в свойстве Текст проверки . Если текст не был введен в поле свойства Текст проверки , Access отображает универсальное сообщение. После нажатия кнопки ОК фокус ввода вернется в текстовое поле.
Если условие на значение задается для поля таблицы, оно будет действовать при любом изменении значения этого поля в базе данных. Напротив, если условие на значение задается для элемента управления в форме, оно будет действовать только при использовании этой формы. Чтобы задать разные условия на значение для разных пользователей, иногда имеет смысл создать эти условия отдельно для полей таблицы и элементов управления в форме.
ПРОЦЕДУРА
- В области навигации щелкните правой кнопкой мыши форму или отчет, которые необходимо изменить, и выберите в контекстном меню пункт Конструктор или Режим макета.
- Щелкните правой кнопкой мыши элемент управления, который требуется изменить, и выберите в контекстном меню пункт Свойства. Будет отображено окно свойств элемента управления.
- На вкладке Все выберите ячейку свойства Validation Rule (Правило проверки).
- Введите выражение или щелкните изображение кнопки Сборка
в поле свойства, чтобы создать выражение с помощью построителя выражений.
Не следует предшествовать выражению с помощью оператора = . - Чтобы настроить сообщение, которое появится при вводе значения, не соответствующего условию, укажите нужный текст в ячейке свойства Сообщение об ошибке.
Группировка и сортировка данных в отчетах
В области Группировка, сортировка и итоги можно определить уровни группировки и порядок сортировки для данных в отчете. Как правило, группировка и сортировка выполняются по полю, выбранному в списке, но если требуется выполнить группировку или сортировку по вычисляемому значению, можно указать выражение.
Группировка — это процедура суммирования столбцов с одинаковыми значениями. Например, предположим, что база данных содержит сведения о продажах для офисов в разных городах, а один из отчетов в базе данных называется "Продажи по городам". Запрос, предоставляющий данные для этого отчета, группит данные по значениям города. Такого рода группировка облегчает восприятие и понимание информации.
Напротив, сортировка представляет собой процесс наложения порядка сортировка на строки (записи) в результатах запроса. Например, можно отсортировать записи по значению первичного ключа (или по другому набору значений в другом поле) по возрастанию или по убыванию либо отсортировать записи по одному или нескольким символам в указанном порядке, например по алфавиту.
ПРОЦЕДУРА: добавление группировки и сортировки в отчет
- В области навигации щелкните правой кнопкой мыши отчет, который необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
- На ленте щелкните Конструктор отчета, а затем в группе Группирование & итоги щелкните Группировать& Сортировка. Ниже отчета появится область Группировка, сортировка и итоги.
- Чтобы добавить к отчету уровень группировки, нажмите Добавить группировку.
- Чтобы добавить к отчету порядок сортировки, нажмите Добавить сортировку.
В области появится новый уровень группировки или порядок сортировки, а также список полей с данными для этого отчета. На приведенном ниже рисунке показан типичный новый уровень группировки (по полю "Категория") и порядок сортировки (по полю "Производитель"), а также список доступных полей для группировки и сортировки.
- Ниже списка доступных полей нажмите выражение, чтобы открыть построитель выражений.
- Введите нужное выражение в поле выражения (верхнее поле) построителя выражений. Убедитесь, что выражение начинается с оператора equal (
=).
ПРОЦЕДУРА: добавление выражения в существующую группировку или сортировку
- В области навигации щелкните правой кнопкой мыши отчет, который необходимо изменить, и выберите в контекстном меню пункт Режим макета или Конструктор.
- Выберите уровень группировки или порядок сортировки, который требуется изменить.
- Щелкните стрелку вниз рядом с пунктом Группировка (уровни группировки) или Сортировка (порядок сортировки). Появится список доступных полей
- В нижней части этого списка нажмите выражение, чтобы открыть построитель выражений.
- Введите выражение в поле выражения (верхнем поле) построителя выражений. Убедитесь, что выражение начинается с оператора equal (=).
Управление запуском макрокоманд
В некоторых случаях выполнять макрокоманду или набор макрокоманд в макросе нужно только в том случае, если выполнено определенное условие. Предположим, необходимо, чтобы макрокоманда выполнялась только в том случае, если значение в поле не меньше 10. Для этого в блоке Если макроса можно задать соответствующее условие с помощью выражения.
Например, пусть поле называется Items, тогда выражение для условия будет выглядеть следующим образом:
[Items]>=10
ПРОЦЕДУРА
- В области навигации щелкните правой кнопкой мыши макрос, который необходимо изменить, и выберите в контекстном меню пункт Конструктор.
- Перейдите к блоку Если, который требуется изменить, или добавьте блок Если из области "Каталог макрокоманд".
- Щелкните верхнюю строку блока Если.
- Введите условное выражение в поле или нажмите
Сборка рядом с полем выражения, чтобы приступить к использованию построителя выражений.
Введенное выражение должно быть логическим, то есть имеет True значение или False. Макрокоманды в блоке If выполняются только в том случае, если условие имеет значение True.
См. также
Работа с построителем выражений
Введение в использование выражений