Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диго_ACCESS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.72 Mб
Скачать

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

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

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

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

61

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

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

62

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

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

63

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

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

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

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

64

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

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

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

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

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

Для каждого поля можно задать не только одно конкретное значе-ние, но и диапазон значений. Так, например, для поля, в котором ото-

65

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

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