Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запросы.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
142.85 Кб
Скачать

Вычисляемые поля

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

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

Выражение вводится в бланк запроса в пустую ячейку строки Поле (Field). Затем, после нажатия клавиши <Enter> или перевода курсора в другую ячейку, перед выражением в этой ячейке добавляется имя поля выражением (Exprw), где nцелое число, увеличивающееся на единицу для каждого нового создаваемого вычисляемого поля в запросе. Имя вычисляемого поля, стоящее перед выражением, отделяется от него двоеточием. Например:

Выражение1: [Цена]*[Количество],

где цена и количество — имена полей.

Имя вычисляемого поля выражение! становится заголовком столбца в таблице с результатами выполнения запроса. Это имя можно изменить.

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

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

  • Функции даты и времени. Используются при обработке дат и времени в полях и литералах. Возвращают дату и время полностью или частично дату, функция Month (дата) выделяет месяц из значения поля, содержащего дату, и возвращает целое число из интервала от 1 до 12 включительно, обозначающее месяц года. Функция MonthName(месяц[; имя]) преобразует числовое обозначение месяца в строковое выражение, указывающее полное (имя=ложь) или сокращенное (имя=истина) название месяца. Например, MonthName ( [срок_пост] ; истина) возвращает сокращенное название месяца. По умолчанию берется значение ложь (название не сокращается).

  • Функции обработки текста. Используются при работе с символьными строками. К этой группе функций относится, например, функция Format, которая служит доя преобразования любого допустимого выражения (в. том числе числового значения, даты) в символьную строку. Format (выражение [; формат [; первый_день_недели [;первая_неделя_года] ] ]). Если аргумент выражение указан в формате даты, то аргумент формат задает форматирование даты. Символы формата даты приведены в табл. 4.1.

Таблица 4.1. Символы формата даты

Символ форматирования

Возвращаемое значение

Dddd

ddd

dd

ww

mmmm

mm

mmm

УУ

УУУУ

Название дня недели

Сокращенное название дня недели

Номер дня месяца

Номер недели года

Полное название месяца

Номер месяца

Краткое название месяца

Две последние цифры года

Четыре цифры года

Например:

Format { [НАКЛАДНАЯ] ! [ДАТА_ОТГР] ; "mmmm") — Возвратит полное название

месяца;

Format ( [НАКЛАДНАЯ] ! [ДАТА_ОТТР] ; "mm" ) — Возвратит номер месяца.

Если необходимо выделить не один элемент из даты, запишите в функции Format несколько символов форматирования, разделяя их знаком Т. Например, функция Format ( [НАКЛАДНАЯ] ! [ ДАТA_ОТГP ] ; 'mmmm\ yyyy’) Возвратит полное название месяца и год. После знака "\" нужно поставить пробел.

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

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

  • Финансовые функции. Подобно функциям Excel служат для расчета процента возврата по инвестициям, амортизационных отчислений, годовой ренты и т. п.

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

Для записи выражения в вычисляемом поле или формирования условия отбора может быть использован Построитель выражений (Expression Builder), который вызывается кнопкой Построить (Build) панели инструментов. Курсор мыши предварительно должен быть установлен в ячейке ввода выражения.

Использование функций в вычисляемых полях

Допустим, необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В таблице накладная дата отгрузки хранится в поле дата_отт типа Дата/время (Date/Time).

Для выборки накладных по заданному месяцу создадим вычисляемое поле в пустой ячейке строки Поле (Field), записав туда выражение вида:

Month (накладная! дата_отгР) , если месяц будет задаваться номером;

MonthName{Month(НАКЛАДНАЯ!ДАТА_ОТГР))

ИЛИ Format ( [НАКЛАДНАЯ] ! [ДАТА_ОТГР] ; "mimm"), если месяц будет задаваться полным названием.

Функция Month возвращает выделенный из даты номер месяца. Функция MonthName преобразует номер месяца в его название. Функция Format возвращает выделенное из даты полное название месяца.

Запрос, содержащий первое приведенное выражение, для которого в качестве условия отбора введен номер месяца — 3, — приведен на рис. 4.7. Запрос, содержащий второе приведенное выражение, для которого в качестве условия отбора введено название месяца — март, — приведен на рис. 4.8.

Рис. 4.7. Запрос с функцией выделения из даты номера месяца в вычисляемом поле

Рис. 4.8. Запрос с функцией выделения из даты полного названия месяца в вычисляемом поле

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

После ввода выражения система формирует имя вычисляемого поля по умолчанию — выражениеN (ExprN). Это имя будет вставлено перед выражением.

Присвоение пользовательских имен вычисляемым полям

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

Для изменения только имени поля в запросе в режиме конструктора запроса в бланке запроса вместо выражениеN (ExprN) введите новое имя. Новое имя используется не только в заголовке столбца таблицы запроса, а и в новых объектах, построенных на этом запросе.

Для изменения подписи поля в свойствах поля установите курсор мыши на вычисляемое поле в бланке запроса и откройте окно Свойства поля (Field Properties), щелкнув правой кнопкой мыши и выбрав в контекстном меню пункт Свойства (Properties). В окне Свойства поля (Field Properties) на вкладке Общие (General) введите нужный текст подписи в строку Подпись поля (Caption).