Не все поля, которые используются при формировании запроса, должны обязательно содержаться в ответе. Поле может быть необходимо для задания условия отбора, но надобность в его появлении в ответе отсутствует. В бланке запроса есть строка Вывод на экран. Поле будет выводиться на экран, если флажок выставлен (þ).
Если в ответ выводятся не все поля исходной таблицы, то может получиться так, что строки в ответе будут повторяться (Студенты – Оценки без указания предмета, если надо найти задолжников). Для того чтобы управлять выводом повторяющихся строк, надо вызвать контекстное меню области таблиц и выбрать строку Свойства. В свойствах надо для свойства Уникальные записи указать значение ДА.
В отличие от электронных таблиц в БД не хранятся те данные, которые могут быть вычислены на основе других данных. При формировании запросов к БД допускается создание вычисляемых полей. Вычисляемые поля - это временные поля, которые создаются только в запросе в результате применения различных операций и функций к полям БД. Для создания вычисляемого поля в строке «Поле» бланка запроса нужно набрать:
<имя поля>: <выражение>.
Имена полей, используемые в выражении, пишутся в квадратных скобках. Например, если в БД есть поля «количество» и «цена», то можно создать вычисляемое поле «Стоимость», с помощью которого на экран будет выводиться сумма покупки:
Стоимость: [количество]*[цена].
Если запрос многотабличный, то перед именем поля задается имя таблицы, которое также ставится в квадратные скобки. Выражение может вводиться в ячейку вручную, а можно использовать для этих целей построитель выражений (рис. 25).
Рисунок 25. Диалоговое окно Построитель выражений
Это окно содержи следующие элементы:
1. Поле выражения. В верхней части окна построителя расположено поле, в котором создается выражение. Ниже находится раздел, предназначенный для создания элементов выражения и их последующей вставки в поле выражения. Допускается непосредственный ввод (с помощью клавиатуры) части выражения в поле выражения.
2. Кнопки операторов. В средней части окна построителя находятся кнопки с часто используемыми операторами. При нажатии на одну из этих кнопок построитель вставит соответствующий оператор в текущую позицию поля выражения. Чтобы вывести полный список операторов, выберите папку Операторы в нижнем левом поле и нужный тип в среднем поле. В правом поле будут выведены все операторы выбранного типа.
3. Элементы выражения. В нижней части окна построителя находятся три поля.
В левом поле выводятся папки, содержащие таблицы, запросы, формы, объекты базы данных, встроенные и определенные пользователем функции, константы, операторы и общие выражения.
В среднем поле задаются определенные элементы или типы элементов для папки, заданной в левом поле. Например, если выбрать в левом поле Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access.
В правом поле выводится список значений (если они существуют) для элементов, заданных в левом и среднем полях. Например, если выбрать в левом поле Встроенные функции и тип функции в среднем, то в правом поле будет выведен список всех встроенных функций выбранного типа.
Примеры выражений для вычисляемых полей приведены в таблицах 16-18.
Таблица 16.Обработка текстовых значений
Выражение
Результат отбора
Примечание
ПолноеИмя: [Имя] & " " & [Фамилия]
Отображение в поле «Полное имя» значения полей «Имя» и «Фамилия», разделенные пробелом
& - сцепление строк
Адрес: [Город] & " " & [Район] & " " & [Индекс]
Отображение в поле «Адрес» значения полей «Город», «Область» и «Индекс», разделенные пробелами.
ПерваяБукваТовара: Left([НазваниеТовара], 1)
Отображение в поле «ПерваяБукваТовара» первого знака значения поля «НазваниеТовара»
Left([НазваниеТовара], k) – выделение k первых символов в строке
КодТипа: Right([КодПродукта], 2)
Отображение в поле «КодТипа» двух последних знаков значения поля «НазваниеТовара»
Right([КодПродукта], k) - выделение k последних символов в строке
КодРайона: Mid([Телефон], 2, 3)
Отображение в поле «КодРайона» трех знаков, начиная со второго, значения поля «Телефон»
Mid([Телефон], k, n) – выделение n символов в строке, начиная с k
Таблица 17. Выполнение арифметических операций
Выражение
Результат отбора
Примечание
УральскийКоэффициент: [Тариф] * 0.15
Отображение в поле «УральскийКоэффициент» 15 процентов от значения поля Тариф
* - операция умножения;
/ - операция деления;
+ - сложение;
- - вычитание
ОбъемЗаказа: [Количество] * [Цена]
Отображение в поле «ОбъемЗаказа» произведения значений полей «Количество» и «Цена»
Отображение в поле «КоличествоТоваров» общего количества товаров как заказанных, так и находящихся на складе.
Если какие-либо записи в одном из использованных в выражении полей могут содержать значение Null, то это значение Null можно преобразовать в нуль при помощи функции Nz.
Отображение в поле «ВремяДоставки» числа дней между датой размещения и датой исполнения
DateDiff(i, d1,d2) – возвращает разницу между двумя датами d1 и d2 в виде i. Параметр I может принимать значения:
yyyy – годы, d – дни, m – месяцы, ww – недели, w- дни недели, h – часы, n – минуты, s – секунды.
ГодНайма: DatePart("yyyy", [ДатаНайма])
Отображение в поле «ГодНайма» года найма сотрудника
DatePart(i ,d) – отображает часть поля типа дата/время
ЧислоМесяцев: DatePart("m", [ДатаИсполнения])
Отображение в поле «ЧислоМесяцев» числа месяцев
ПредшествующаяДата: Date( ) - 30
Отображение в поле «ПредшествующаяДата» даты, предшествующей текущей на 30 дней