Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
28,2. Создание выражений.docx
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
247.83 Кб
Скачать

Создание выражений

Применимо к: Microsoft Office Access 2007

Печать

В данной статье описывается создание и использование выражений в Microsoft Office Access 2007. Эти выражения являются аналогами формул в Microsoft Office Excel 2007. В статье приводятся общие сведения о выражениях — что они собой представляют, а также как и где их использовать. Кроме того, в этой статье описывается создание выражений с нуля и при помощи средства «Построитель выражений». Обратите внимание, что общие сведения в этой статье применимы ко всем выражениям, в то время как пошаговые инструкции приведены только для Office Access 2007.

 ПРИМЕЧАНИЕ.   Чтобы получить сведения об условных выражениях — т. е. выражениях, возвращающих только значения, удовлетворяющие указанному условию, — обратитесь к статье Создание условных (логических) выражений.

В этой статье:

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

  • Назначение выражений

  • Использование выражений

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

  • Применение выражений для практических целей

  • Таблица операторов

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

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

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

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

  • функции, такие как Sum или Avg, а также аргументы, которые они используют;

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

Выражения используются для: – выполнения вычислений; – определения значений поля или элемента управления; – задания условий для запроса; – определения правил; – создания вычисляемых элементов управления и вычисляемых полей; – задания уровня группировки отчета.

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

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

ВЫРАЖЕНИЕ

НАЗНАЧЕНИЕ

=[ДатаРазмещения]-[ДатаИсполнения]

Вычисление в отчете разности между значениями даты в двух элементах управления «поле» («ДатаРазмещения» и «ДатаИсполнения»)

Date()

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

ОбщаяСтоимость: CCur([Заказано].Цена*[Количество]*(1-[Скидка])/100)*100

Создание вычисляемого поля в запросе

Between #01.01.05# And #31.12.05#

Используется для задания условия отбора в запросе на поле даты/времени

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

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

> 0

Задание условия на значение для числового поля в таблице — пользователи должны будут вводить положительные значения.

Как следует из приведенных выше примеров, выражения в Access — это не только математические расчеты. Выражения служат для различных целей. Обратите внимание, что приведенные примеры выражений некоторым образом отличаются друг от друга. Например, некоторые выражения начинаются с оператора = (равенство). При вычислении значения для элемента управления в форме или отчете в начале выражения используется оператор =. В других случаях оператор = не используется. Например, при вводе выражения в запрос (в свойство Значение по умолчанию (DefaultValue)либо Условие на значение (ValidationRule) поля или элемента управления) оператор = не используется, кроме случая, когда выражение добавляется в текстовое поле таблицы. В некоторых случаях, например, при добавлении выражений в запросы, Access удаляет оператор = автоматически. Дополнительные сведения о синтаксисе выражений см. в статье Введение в синтаксис выражений.

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

ИДЕНТИФИКАТОРЫ

Идентификатор — это имя поля, свойства или элемента управления. Идентификаторы используются в выражении в качестве ссылки на значение, связанное с полем, свойством или элементом управления. Рассмотрим пример с выражением =[ДатаРазмещения]-[ДатаИсполнения]. Это выражение вычисляет разность между значением поля (или элемента управления) ДатаИсполнения и значением поля (или элемента управления)ДатаИсполнения. В данном выражении оба элемента: ДатаРазмещения иДатаИсполнения — являются идентификаторами.

ОПЕРАТОРЫ

Access поддерживает различные операторы, включая стандартные арифметические операторы, такие как +-* (умножение), / (деление). Можно также использовать операторы сравнения для сравнения значений, текстовые операторы для конкатенации (объединения) текста, логические операторы для определения значения True или False, а также другие специальные операторы Access. Для получения дополнительных сведений об операторах см. раздел Таблица операторов.

ФУНКЦИИ И АРГУМЕНТЫ

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

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

=Format(Date(),"д мммм, гггг")    

В этом примере используются два аргумента. Первый, функция Date, дает текущую дату. Второй аргумент, отделенный запятой от первого аргумента, является текстовой строкой, сообщающей функции Format, как форматировать значение даты. Отметим, что текстовая строка заключена в кавычки. Как правило, когда нужно задать текст, его заключают в кавычки. Это выражение также показывает принцип, который следует помнить: значение, возвращаемое одной функцией, часто используется в качестве аргумента для другой функции.

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

Access также поддерживает множество встроенных функций. Ссылки на сведения о функциях см. в статье Функции (по категориям).

КОНСТАНТЫ

Константа — это элемент, значение которого остается неизменным при выполнении операций с ним, константы всегда имеют свое имя. Чаще всего в выражениях используются константы TrueFalse и Null. Кроме того, можно задать пользовательские константы в программе Visual Basic для приложений (VBA), которые можно использовать в процедурах VBA. VBA — это язык программирования, используемый в Access.

 ПРИМЕЧАНИЕ.   Не допускается использование констант Microsoft Visual Basic в пользовательских функциях, применяемых в выражениях. Например, в Visual Basic определены константы, представляющие дни недели: vbSunday (представляющая воскресенье), vbMonday (представляющая понедельник), и т. д. Каждой константе соответствует числовое значение: 1 — для vbSunday, 2 — для vbMonday, и т. д. Эти константы нельзя использовать в пользовательских функциях, вызываемых выражением. Вместо этого необходимо использовать числовые значения.

ЗНАЧЕНИЯ

В выражениях можно применять литералы, такие как число 1 254 или строка «Введите число от 1 до 10». Числовым значением может быть набор цифр, включая знак числа и десятичный разделитель. Если знак отсутствует, значение считается положительным. Для задания отрицательного значения следует включить знак минус (-). Можно также использовать экспоненциальное представление. Для этого следует включить «E» или «e» и знак порядка (например, 1,0E-6).

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

Например, при вводе текста Рига в выражении будет отображено «"Рига"». Чтобы получить в выражениях строку, заключенную в кавычки, можно заключать вложенные строки в одинарные кавычки (') или тройные пары прямых кавычек ("). Например, следующие выражения являются эквивалентными:

Forms![Контакты]![Город].DefaultValue = ' "Рига" '    

Forms![Контакты]![Город].DefaultValue = " " "Рига" " "    

Чтобы использовать значения даты/времени, необходимо заключать их в знаки решетки (#). Например, допустимо записывать дату таким образом:#07.03.07##7-Мар-07#, и #-7-3-2007#. Допустимые значения даты, заключенные в знаки решетки # автоматически определяются как значения типа «Дата/время».

 К НАЧАЛУ СТРАНИЦЫ

Назначение выражений

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

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

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

  • Задать условие на значение. Условия на значение контролируют значения, которые могут быть введены в поле или элемент управления.

  • Задать условие отбора в запросе.

На следующем рисунке приведены некоторые типичные выражения, использующиеся в описанных выше ситуациях:

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

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

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

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

ОбщаяСтоимость: CCur([Заказано].[Цена*[Количество]*(1-[Скидка])/100)*100    

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

Выражение для вычисляемого поля, объединяющего имя и фамилию, выглядит следующим образом: [Имя] & " " & [Фамилия]. В этом случае амперсанды объединяют значения в полях Имя и Фамилия с пробелом — в выражении пробел заключен в двойные прямые кавычки.

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

Кроме того, выражения можно использовать для задания условий на значение. Например, можно создать условие на значение, с требованием, чтобы вводимая в поле дата не предшествовала текущей. В этом случае свойству Условие на значение (Validation Rule) следует задать значение >= Date().

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

Between #01.01.2007# And #31.12.2007#    

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

 К НАЧАЛУ СТРАНИЦЫ

Использование выражений

Выражения могут быть использованы в различных местах базы данных. Например, в таблицах, запросах, формах, отчетах и макросах есть свойства, допускающие использование выражений. В частности, выражения можно использовать в свойствах Данные (Control Source) и Значение по умолчанию (Default Value) элементов управления, а также в свойстве Условие на значение (Validation Rule) полей таблицы. Кроме того, при создании программы на языке VBA для процедуры обработки события или модуля часто используются выражения, сходные с применяемыми в объектах Access, например, в таблицах или запросах.

КРАТКОЕ ОПИСАНИЕ СИНТАКСИСА ВЫРАЖЕНИЙ

В выражениях часто используются данные, содержащиеся в таблицах и запросах, а также данные, хранящиеся в элементах управления в формах или отчетах. Чтобы использовать эти данные, выражения ссылаются на имена полей в таблицах и запросах, а также имена элементов управления. Эти имена полей и элементов управления в выражении следует заключить в квадратные скобки ([ ]). Например, если в выражении необходимо использовать поле таблицы «Цена», следует ввести [Цена]. При вводе имени, не содержащего пробелов или специальных знаков, оно автоматически заключается в квадратные скобки. При наличии в имени пробелов или специальных знаков необходимо заключить их в квадратные скобки вручную.

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

ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ В ЭЛЕМЕНТАХ УПРАВЛЕНИЯ В ФОРМАХ И В ОТЧЕТАХ

Вычисляемому элементу управления можно присвоить имя. Имя задается как значение свойства Имя (Name) элемента управления. Имя должно быть уникальным для каждого элемента управления в форме или отчете. Оно должно также отличаться от всех имен полей и элементов управления, используемых в выражении для этого элемента управления, и отличаться от имен полей в базовой таблице или запросе. Это имя может быть использовано при необходимости создать ссылку на значение в этом элементе управление в других выражениях в форме или отчете.

Чаще всего выражения используются в перечисленных ниже объектах.

  • В элементе управления «поле» в форме или отчете    В этом случае будет создан вычисляемый элемент управления. Предположим, необходимо вычислить промежуточную сумму по всем элементам строки формы «Заказы». Промежуточная сумма выглядит следующим образом:

Чтобы вычислить промежуточную сумму, поместите элемент управления «поле» в форму и в качестве значения свойства Данные (ControlSource)текстового поля задайте следующее выражение:

=Sum([поле_таблицы])    

В данном случае поле_таблицы — это название поля, содержащего значения для вычисления промежуточной суммы. Это поле располагается в таблице или запросе. Функция Sum вычисляет сумму набора значений из источника записей.

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

Ввод выражения в элемент управления «поле»

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

  2. Щелкните правой кнопкой мыши текстовое поле, которое необходимо изменить, и выберите команду Свойства, чтобы отобразить окно свойств элемента управления.

-или-

На вкладке Конструктор в группе Сервис выберите команду Окно свойств.

  1. На вкладке Данные или Все окна свойств выберите свойствоДанные (ControlSource) текстового поля, а затем введите выражение, начиная со знака равенства (=). Например, для вычисления промежуточной суммы, показанной выше, введите=Sum([поле_таблицы]). Убедитесь, что элемент имя_полязаменен действительным именем поля.

-или-

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

Окно свойств будет выглядеть следующим образом:

  1. Закройте окно свойств и сохраните изменения.

ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ В УСЛОВИЯХ ОТБОРА В ЗАПРОСЕ

Выражения используются для задания условий отбора в запросе. При этом возвращаются только строки, удовлетворяющие заданным условиям. Предположим, необходимо просмотреть все заказы, выполненные в течение 2004 года. Чтобы задать условие отбора, введите приведенное ниже выражение в ячейку Условия столбца даты/времени в запросе. В данном примере используется столбец даты/времени «ДатаПоставки». Для определения интервала дат введите следующее условие:

Between #01.01.2004# And #31.12.2004#    

Столбец ДатаПоставки будет выглядеть следующим образом.

Выражение определяет, входит ли значения в столбце «ДатаПоставки» в указанный интервал. Обратите внимание, что даты заключаются в знаки решетки (#). Значение между знаками решетки трактуется Access как значение с типом данных «Дата/время». Это означает, что над ними могут производиться соответствующие вычисления.

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

Ввод условий отбора в бланке запроса

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

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

  3. Введите выражение условия отбора.

-или-

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

 ПРИМЕЧАНИЕ.   Не начинайте выражение с оператора =.

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

ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ ДЛЯ СОЗДАНИЯ ВЫЧИСЛЯЕМЫХ ПОЛЕЙ В ЗАПРОСЕ

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

Год Поставки: Format([ДатаПоставки],"гггг")    

В этом случае выражение использует функцию Format для извлечения года из значений поля «ДатаПоставки». Функция Format представляет год в виде четырех цифр. Начало выражения — Год поставки: — присваивает конечному столбцу имя Год Поставки.

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

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

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

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

-или-

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

 ПРИМЕЧАНИЕ.   Не начинайте выражение с оператора = — начать выражение следует с имени и двоеточия. Например, введите ОтпускнаяЦена: в начале выражения, создающего вычисляемое поле ОтпускнаяЦена.

ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ В СВОЙСТВЕ «УСЛОВИЕ НА ЗНАЧЕНИЕ (VALIDATION RULE)» ПОЛЯ ТАБЛИЦЫ

Еще одним объектом, где используются выражения, является свойствоУсловие на значение (Validation Rule) поля таблицы. Предположим, в таблице «Склад» есть поле «В наличии», и необходимо, чтобы пользователи вводили только неотрицательные значения. Другими словами, товар на складе не может быть в отрицательном количестве. Для этого используется выражение, приведенное на следующем рисунке.

Ввод условия на значение для поля таблицы

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

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

  3. На вкладке Общие выберите ячейку свойства Условие на значение (Validation Rule).

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

-или-

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

-или-

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

 ПРИМЕЧАНИЕ.   Не начинайте выражение с оператора = при создании условия на значение.

Важно помнить, что выражения для условия на значение должны возвращать логическое значение True. Таким образом, в приведенном примере значение [В наличии] должно быть >=0. В противном случае Access отображает текст, указанный в ячейке свойства Сообщение об ошибке (Validation Text). Если текст в ячейке свойства Сообщение об ошибке (Validation Text) не был введен, Access отображает сообщение об ошибке по умолчанию, чтобы показать, что введенное значение не допускается условием на значение поля.

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

ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ В СВОЙСТВЕ «УСЛОВИЕ НА ЗНАЧЕНИЕ (VALIDATION RULE)» ЭЛЕМЕНТА УПРАВЛЕНИЯ

Свойство Условие на значение (Validation Rule) можно также задать для элемента управления. Предположим, для ввода диапазона дат в отчет используется форма, и необходимо, чтобы начальная дата не предшествовала 1 января 2004 г. Свойства поля Условие на значение (Validation Rule) и Сообщение об ошибке (ValidationText), в которое вводится начальная дата, можно задать следующим образом.

СВОЙСТВО

ЗНАЧЕНИЕ

Условие на значение (ValidationRule)

>=#01.01.2004#

Сообщение об ошибке (ValidationText)

Введите дату не ранее 1 января 2004 г.

При попытке ввести дату, предшествующую 1 января 2004 г., будет отображено сообщение об ошибке. После нажатия кнопки ОК фокус вновь будет установлен на это поле.

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

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

-или-

Если форма или отчет уже открыты, щелкните правой кнопкой мыши вкладку документа и в контекстном меню выберите команду Конструктор.

-или-

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

  1. Щелкните правой кнопкой мыши элемент управления, который необходимо изменить, и выберите команду Свойства.

-или-

На вкладке Конструктор в группе Сервис выберите команду Окно свойств.

Будет отображено окно свойств элемента управления.

  1. На вкладке Все выберите ячейку свойства Условие на значение (Validation Rule).

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

 ПРИМЕЧАНИЕ.   Не начинайте выражение с оператора = при создании условия на значение.

  1. При необходимости измените значение свойства Условие на значение (Validation Text).

  2. Закройте окно свойств и сохраните изменения.

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

Если свойство Данные (Control Source) элемента управления является полем таблицы, обычно лучше задать значение свойства поля Условие на значение (Validation Rule), в дополнение к свойству элемента управления. Таким образом, условие будет применяться всегда, независимо от того, какие форма или запрос используются для обновления поля.

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

ИСПОЛЬЗОВАНИЕ ВЫРАЖЕНИЙ ДЛЯ ЗАДАНИЯ ЗНАЧЕНИЙ ПО УМОЛЧАНИЮ ДЛЯ ПОЛЯ ТАБЛИЦЫ

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

В этом примере выражение с помощью функции Now вставляет значение даты и времени в поле «ДатаРазмещения».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]