Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных_часть2_.pdf
Скачиваний:
83
Добавлен:
05.06.2015
Размер:
2.84 Mб
Скачать

РЕАЛИЗАЦИЯ ЗАПРОСОВ

Рис. 2.22. Фрагмент измененной структуры таблицы «Сотрудник»

2.2.6. Перекрестные запросы

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

Например, в таблице «СОТРУДНИК» имеются сведения об окладе каждого сотрудника, а также признаки, на какой кафедре и в какой должности работает каждый сотрудник. Требуется для каждой кафедры определить общий фонд зарплаты, а по каждой должности – среднюю по каждой кафедре зарплату.

Для создания перекрестного запроса следует воспользоваться позицией «Перекрестный запрос» в окне «Новый запрос» (рис. 2.1) или выбрать соответствующую строку в меню «Запрос». Далее надо выполнить ряд шагов, предлагаемых мастером по созданию перекрестных запросов (рис. 2.23-2.26). Вид запроса, полученного в результате использования мастера, представлен на рис. 2.26.

49

РЕАЛИЗАЦИЯ ЗАПРОСОВ

Рис.2.23. Создание перекрестного запроса (шаг 1)

Рис.2.24. Создание перекрестного запроса (шаг 2)

50

РЕАЛИЗАЦИЯ ЗАПРОСОВ

Рис. 2.25. Создание перекрестного запроса (шаг 3)

Рис.2.26. Перекрестный запрос (1)

51

РЕАЛИЗАЦИЯ ЗАПРОСОВ

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

Рис. 2.27. Перекрестный запрос (2)

2.2.7. Запросы с параметрами

Если приходится часто выполнять однотипный запрос на выборку или перекрестный запрос, изменяя при этом значение какого-либо атрибута в условии отбора, то можно использовать запрос с параметрами. Запрос с параметрами не требует каждый раз вносить изменения в бланк запроса; вместо этого выводится приглашение пользователю ввести условия отбора. Запрос с параметрами особенно удобно использовать, когда конечные пользователи, для которых создается система, не очень квалифицированные, и желательно, чтобы они сами никакие элементы системы не изменяли. Запросы с параметрами также удобно использовать в качестве основы для форм и отчетов. Например, на основе запроса с параметрами можно создавать ежемесячные отчеты. При выводе такого отчета, на экране появится приглашение ввести месяц, за который должен быть получен отчет.

Для каждого поля, которое предполагается использовать как параметр, в конструкторе запросов надо ввести в ячейку строки «Условие отбора» текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст подсказки должен отличаться от имени поля, но может включать его.

На рис. 2.28 представлен параметрический запрос для получения списка сотрудников заданной кафедры.

52

РЕАЛИЗАЦИЯ ЗАПРОСОВ

Рис. 2.28. Параметрический запрос

При запуске этого запроса на исполнение будет появляться окно с подсказкой (рис. 2.29), в которое надо ввести требуемое значение параметра.

Рис. 2.29. Приглашение параметрического запроса

Для каждого поля можно задать не только одно конкретное значение, но и диапазон значений. Так, например, для поля, в котором отображаются даты, можно вывести приглашения «Введите начальную дату:» и «Введите конечную дату:» для определения диапазона отбираемых значений. Для этого в соответствующую ячейку строки «Условие отбора» надо ввести выражение Between [Введите начальную дату:] And [Введите конечную дату:].

В качестве параметров может быть использовано не одно, а несколько полей. В этом случае для каждого поля, которое предполагается использовать как параметр, в ячейку строки «Условие отбора» вводится текст приглашения, заключенное в квадратные скобки. Эти приглашения будут последовательно выводиться при запуске запроса.

53