Базы данных: Методические указания к лабораторным работам (Создание простейшей базы данных. Главная (управляющая) форма информационной системы «Кафедра»), страница 8

Далее описываются два способа создания подчинённой формы со связями «многие ко многим»:

·  с помощью мастера подчинённых форм,

·  с использованием запроса к базе данных.

. С помощью мастера создать подчинённую форму проще, но при отсутствии на компьютере мастера необходимо использовать запрос к базе данных.

1.1.Создание подчинённой формы с помощью мастера. В окне мастера подчинённых форм установите переключатель «Имеющиеся таблицы и запросы» и щёлкните по кнопке «Далее».

В следующем окне мастера подчинённых форм выберите

·  таблицу «дисциплины» и в ней все поля,

·   таблицу «преп_дис» и в ней  поля «код_преп» и «код_дис».

Перейдите в следующее окно и выберите переключатель «Выбор из списка» и оставьте предложенное название подчинённой формы.

Перейдите в режим формы и просмотрите несколько записей.

1.2.Создание подчинённой формы с использованием запроса к базе данных. Сначала нужно создать запрос на выборку из базы данных. (Подробно методы создания запросов рассматриваются во второй части данного пособия.) Откройте окно базы данных. В левой части окна выберите пункт меню «Запросы». В верхней части окна выберите вкладку «Создать». Создайте запрос в режиме конструктора.

В окне «Добавление таблицы» выберите таблицы «преподаватели», «дисциплины» и «преп_дис». Закройте окно «Добавление таблицы». окне «запрос на выборку» Перетащите мышкой поля из списков полей таблиц расположенных в верхней части окна «запрос на выборку» в нижнюю часть так , как это показано на рис. 6.

Рис. 6. Запрос, сформированный средствами Access

Выполните запрос с помощью пунктов меню Запрос ®  Запуск. Результат запроса – новая (временная) таблица, состоящая из записей, содержащих все допустимые комбинации значений полей из трёх исходных таблиц. Закройте окно запроса. Назовите запрос «преп_дисц».

Откройте форму «преп_просм» в режиме конструктора. Установите элемент «Подчинённая форма/отчёт» в  форму «преп_просм». Отмените использование мастера подчинённых форм (или закройте окно с сообщением о том, что мастер не установлен).

Подведите указатель мышки к квадратику в верхнем левом углу подчинённой (внедрённой) формы и щёлкните правой кнопкой. В появившемся окне выберите пункт «Свойства». Появится окно «Форма/отчёт». Выберите в нём вкладку «Данные». Установите для свойства объект-источник  значение «Запрос.преп_дисц». Перейдите в режим просмотра формы. Примерный вид формы показан на рис. 7.

Рис. 7. Форма для просмотра данных о преподавателях

2.Дополнение формы «преп_ред» подчинённой формой с данными о предметах, которые ведёт преподаватель. Любым из двух способов, описанных в п.1 данной лаб. работы вставьте в форму «преп_ред» подчинённую форму. Данные о дисциплинах используются для формирования учебной нагрузки многих преподавателях, поэтому редактировать их нужно в специальной форме, а в подчинённой форме их редактирование нужно запретить. Для этого установите свойство подчинённоё формы «доступ» в состояние «нет».

3.Создайте формы для ввода, просмотра и редактирования данных о дисциплинах, аналогичные формам для работы с данными о преподавателях. Эти формы понадобятся для построения информационной системы «Кафедра». Назовите формы «дис_ввод», дис_просм» и «дис_ред».

Формы для ввода связей «многие ко многим»

Цель работы: создать форму для автоматического заполнения вспомогательной таблицы, хранящей только коды записей двух таблиц со связей «многие ко многим».

Предполагается, что при эксплуатации создаваемой формы пользователь, распределяющий нагрузку преподавателей, будет указывать преподавателя и ведомую им дисциплину, а СУБД Access, исходя из этих данных, будет создавать в таблице «преп_дис» запись с кодами выбранных преподавателя и дисциплины. Форма показана на рис. 8.

Рис. 8. Форма для ввода учебной загрузки преподавателей

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

Создайте форму в режиме конструктора. Выберите таблицу «преп_дис» в качестве источника записей. Укажите, что форма предназначена для ввода.