Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access МП копия.doc
Скачиваний:
11
Добавлен:
20.08.2019
Размер:
15.44 Mб
Скачать

Упражнение 6.4.4. Конструирование запроса на основе нескольких взаимосвязанных таблиц

Пусть необходимо получить информацию об оценках, полученных студентами по всеми предметам. Результат должен содержать фамилию студента, наименования сданных предметов и оценки.

  1. Для создания запроса в окне базы данных выберите объект Запросы и нажмите кнопку Создать. В окне Новый запрос выберите Конструктор.

  2. Для включения в схему данных запроса таблиц, позволяющих решить поставленную задачу, в окне Добавления таблиц выберите:

  • СТУДЕНТ - для выборки фамилии студента из поля ФИО;

  • УСПЕВАЕМОСТЬ – для выборки оценок по предмету (из поля ОЦЕНКА);

  • ПРЕДМЕТ – для выборки наименования предмета (из поля НП).

Между таблицами автоматически установлены необходимые связи.

  1. Закройте окно Добавления таблицы.

  1. Переходите к подготовке бланка запроса. Чтобы в бланке запроса наряду с именем поля видеть имя таблицы, выполните команду Вид| Имена таблиц.

  2. Перетащите с помощью мыши поля, включаемые в результат выполнения запроса, в строку бланка запроса Поле:

  • ФИО – из таблице СТУДЕНТ;

  • НП – из таблицы предмет;

  • ОЦЕНКА – из таблицы УСПЕВАЕМОСТЬ.

  1. Выполните запрос, нажав на панели конструктора запросов кнопку Запуск или Вид. Результат выполнения запроса представлен в таблице на рис 6.4.2.

7. Сохраните запрос под именем Оценки по предметам.

Рис. 6.4.2. Результат выполнения запроса об оценках студентов.

Упражнение 6.4.5. Ввод параметров в запрос

В этом упражнении перед выполнением запроса Access через диалоговое окно будет запрашивать у пользователя конкретные значения параметров и использовать их в качестве условий отбора.

Пусть необходима информация об оценке, полученной студентом по заданному предмету. Создайте подобную схему данных запроса как в прошлом упражнении.

  1. Введите в условие отбора поля ФИО название параметра, по которому будет запрашиваться фамилия при выполнении запроса. Название параметра введите как текст, заключенный в квадратные скобки, например, [Фамилия и инициалы студента]

Этот текст Access воспринимает как имя параметра (рис.6.4.3.)

  1. В условие отбора поля НП введите второй параметр запроса: [Наименование предмета]

  2. Выполните запрос. При этом Access выведет диалоговые окна, представленные на рис.6.4.4.

  3. Введите нужные значения параметров, например, ФИО - Гребова И.П.; предмет - информатика.

Если заданный студент числится в списке студентов и отметка о сдаче заданного предмета есть в таблице УСПЕВАЕМОСТЬ, в таблице результата запроса будет отображаться запись об этом.

Рис.6.4.3. Бланк запроса с параметрами для ввода ФИО и НП

Рис.6.4.4. Диалоговые окна для ввода параметров запроса

Упражнение 6.4.6. Групповые операции в многотабличном запросе

Произведем анализ полученных студентами оценок по различным предметам. Например, подсчитаем число оценок (2,3,4,5) по каждому из предметов.

  1. Для формирования сведений об оценках, полученных студентами по различным предметам создайте многотабличный запрос на выборку на основе таблиц СТУДЕНТ, УСПЕВАЕМОТЬ, ПРЕДМЕТ, в бланк запроса включите поля НП, ОЦЕНКА, ФИО студента.

  2. Основу образования записей этого запроса составляет таблица УСПЕВАЕМОСТЬ, а расшифровывающие данные выбираются из таблиц: ПРЕДМЕТ и СТУДЕНТ. Таким образом, каждая строка результата будет содержать информацию об оценке студента по указанному в строке предмету.

  3. Для группировке записей с одинаковым наименованием предмета и оценкой, а также подсчета числа записей в группе нажмите кнопку Групповые операции и в соответствующей строке в полях НП и ОЦЕНКА оставьте значение группировка, а в поле ФИО выберите значение Count. В результате схема данных и бланк запроса должен принять вид, показанный на рис.6.4.5.

Рис. 6.4.5. Многотабличный запрос с групповой операцией

  1. Сохраните запрос под имеем – Количество оценок по каждому предмету.

Построение запросов на основе других запросов

На практике редко удается решить задачу с использованием единственного запроса. Более сложные задачи требуют последовательного выполнения нескольких запросов. Каждый из запросов имеет свои Входные и выходные данные. В простейшем случае выходные данные предшествующего запроса являются входными для следующего, построенного на нем, запроса и, выполнив только последний запрос в цепочке построенных друг на друге запросов, вы инициируете последовательное выполнение всех запросов цепочки и полное решение задачи. Используя такой подход, можно решать достаточно сложные задачи, не прибегая к программированию.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]