Перекрестные запросы позволяют выполнять вывод данных в виде перекрестной таблицы, в которой в качестве заголовков столбцов используются значения полей и выражений. Перекрестные запросы добавляют еще одну строку Перекрестная таблица в Бланк запроса.
Создадим перекрестный запрос «Средняя оценка учеников по предметам».
Для создания этого запроса выполним следующие действия:
1. Выберем Создание запроса в режиме конструктора.
2. Добавим таблицы Ученики, Предмет и Получает.
3. В Бланк запроса перенесем следующие поля: Фамилия, Название и Оценка.
4. На ПИ щелкнем на копке Тип запроса и выберем там Перекрестный.
5. В бланк запроса добавиться дополнительная строка Перекрестная таблица.
6. В этой строке для столбца Фамилия выберем Заголовки строк, для столбца Название – Заголовки столбцов, а для столбца Оценка – Значение (рис.4.17):
7. В столбце Оценка в строке Групповая операция выберем Avg (среднее арифметическое)
8. Щелкнем на кнопке Выполнить ( ! )
Результат работы запроса показан на рис.4.18. Этот запрос содержит средние оценки всех учеников по всем предметам. Т.к. наши ученики изучают не одни и те же предметы, то в этой таблице есть пустые клетки.
А теперь изменим немного этот запрос. Добавим поле Класс. В строке Условие отбора для него добавим 11-А (рис.4.19) Запустим запрос на выполнение. Результат на рис.4.20
Мы видим, что поле Класс в результате работы запроса не отобразилось, а служит только для задания условия отбора для вывода данных. Если в Конструкторе запроса изменить значение для поля Класс, то и результат работы запроса измениться.
Создадим запрос «Замена предмета». Сначала создадим простой запрос на выборку по трем таблицам: Учитель, Преподает и Предмет (рис.4.21), запустим его на выполнение. Обязательно нужно щелкнуть мышкой в любом месте таблички, которая появиться у нас в качестве результата работы запроса. Потом перейдем в режим конструктора. На ПИ щелкнем на кнопке Тип запроса и выберем Обновление. Запустим запрос на выполнение. В таблице результата работы запроса внесем необходимые изменения, например, учитель Циркуль перестал преподавать химию, а стал преподавать биологию, а учитель Присидайло уволился, на его место пришел учитель Быстрый и стал преподавать вместо физкультуры волейбол (рис.4.22).
После выполнения этого запроса изменяться данные во всех таблицах и запросах, где они используются. Проверьте это, открывая таблицы Учителя, Получает и т.д.
При создании запросов на добавление записей или на создание таблицы Access предложит сначала указать имя создаваемой или пополняемой таблицы.
При выполнении запроса на удаление, удаляются все связанные записи в таблицах, если в окне Изменение связей схемы данных (рис.1.25) установлены флажки Обеспечение целостности данных, Каскадное обновление связанных полей и Каскадное удаление связанных записей. С одной стороны, это очень удобное средство при изменении и удалении всех ненужных записей, а с другой стороны, нужно быть очень осторожным при проведении этой операции.