- •Работа с базами данных в субд access
- •Введение
- •Контрольные вопросы
- •1.2. Нормализация отношений в рбд
- •1.3. Типы связей и ключей в рбд
- •Контрольные вопросы
- •2. Создание таблиц и связей в субд access
- •2.1. Создание бд в субд Access
- •2.2. Создание таблиц в режиме Конструктор
- •Контрольные вопросы
- •3. Организация связей между таблицами и заполнение таблиц
- •Контрольные вопросы
- •4. Запросы в субд access
- •4.1. Запрос на выборку данных
- •4. 2. Создание запроса в режиме Конструктор
- •4.3. Запрос с параметром
- •4.4. Итоговые запросы
- •4.5. Запросы с вычисляемым полем
- •Стоимость:[Количество] *[Цена]
- •4.6. Перекрестные запросы
- •4.7. Запрос в Режиме sql
- •Контрольные вопросы
- •5. Формы в субд access
- •5.1. Создание форм на основе Мастера форм
- •5.2. Построение диаграмм
- •5.3. Конструктор форм
- •Контрольные вопросы
- •6. Отчеты в субд access
- •Контрольные вопросы
- •Литература
- •Содержание
4.3. Запрос с параметром
Запросами с параметром являются запросы, в которых конкретное значение параметра, входящего в условие на выборку, формируется в диалоговом режиме через специальное окно запроса.
Построим запрос с параметром для получения сведений об отдельных контрактах. Запрос строится на базе таблицы «Контракты». Зададим поля запроса: «Товар», «Количество», «Клиент», «Дата». Целью запроса является получение данных о контрактах, заключенных отдельными клиентами, при задании названия их организаций. Для этого в QBE-бланке запроса в строке Условие отбора для поля «Клиент» введите параметр – любую подходящую по смыслу подсказку для ввода требуемого значения поля «Клиент», заключенную в квадратные скобки, например [Организация] (см. рис. 19).
Рис. 19. Окно Конструктора для создания запроса с параметром
При выполнении такого запроса на экране прежде всего появится диалоговое окно Введите значение параметра (см. рис. 20). Введите значение параметра Организация - одно из значений поля «Клиент» из таблицы «Клиенты» (без квадратных скобок).
Рис. 20. Диалоговое окно ввода значения параметра запроса
Сохраните запрос под именем «Контракты клиентов».
Можно создать и более сложное условие выборки для запроса с параметром с использованием логических операторов. Например, для выборки информации о контрактах, заключенных после 1 марта, в поле «Дата» для таблицы «Контракты» нужно будет в строке Условие отбора записать (используется логический оператор «>»):
>[Введите дату]
Если же нужно задать временной интервал выборки информации по дате, например после 1 марта, но до 1 мая текущего года, то необходимо в соответствующей строке Условие отбора записать:
>[Введите дату начала периода] and <[Введите дату конца периода]
При этом вначале будет задан первый вопрос для ввода начала периода, а затем второй -- для ввода конца периода. Аналогичным образом, используя Построитель выражений, можно сформировать любое сложное условие выборки, где соответствующие записи вводятся в строке Условие отбора либо в ниже расположенных строках для нужных полей в QBE-бланке, а конкретные значения соответствующих параметров в таком сложном условии будут задаваться последовательно в диалоговом режиме.
4.4. Итоговые запросы
Итоговые запросы используются в том случае, если необходимо сгруппировать записи, выбранные согласно заданным условиям, по совпадающим значениям поля, а по несовпадающим значениям вычислить итоговые значения. В таких запросах используются два типа полей: по одним полям осуществляется группировка данных, по другим - вычисления.
Рис. 21. Окно Конструктора для создания итогового запроса
Например, создадим итоговый запрос для подсчета количества товаров по контрактам, заключенным сотрудниками, работающими на складе. Запрос строится на базе таблицы «Контракты». Поля запроса: «Сотрудник», «Количество». После определения полей запроса выполните команду Вид/Групповые операции. В результате в QBE-области запроса появится дополнительная строка Групповая операция. В этой строке для поля «Сотрудник» выберите функцию Группировка (эта функция отображается в строке по умолчанию). Для поля «Количество» выберите функцию Sum, воспользовавшись раскрывающимся списком. Добавьте для поля «Количество» режим сортировки По убыванию (см. рис. 21).
В результате выполнения запроса будут сгруппированы записи с одинаковыми фамилиями сотрудников и просуммированы соответствующие количества товаров, на которые были заключены контракты этими сотрудниками. Сохраните запрос под именем «Контракты сотрудников».