На этом шаге рассмотрим подчиненные формы.
В том случае, когда необходимо отображать и изменять данные сразу в нескольких таблицах, следует использовать подчиненные формы.
Например, необходимо создать форму, в которой для каждого студента (таблица Студенты) выводились бы названия предметов (таблица Предметы), полученные оценки и дата сдачи (таблица Успеваемость). Для реализации описанной задачи можно создать форму следующей структуры: содержимым главной формы будет информация о студентах, а в подчиненной форме будут отображаться остальные данные, которые находятся в таблице Успеваемость.
Первым шагом в создании описанной сложной формы будет создание новой формы ОценкиСтудентов или использование уже имеющейся формы Студенты, которую можно будет сохранить под новым именем - ОценкиСтудентов. Если форма создается с помощью мастера, то в качестве источника данных (см. рис. 1, шаг 45) следует выбрать таблицу Студенты, из которой нужно выбрать поля Фамилия, Имя, Отчество и Состояние (см. рис. 2, шаг 45).
На следующем этапе необходимо добавить на созданную форму объект Подчиненная форма с помощью кнопки Подчиненная форма/отчет , в результате чего начнет выполнение мастер подчинённых форм, если предварительно кнопка была установлена в нажатое состояние.
В начале работы мастера будет отображено окно, в котором следует выбрать источник данных для подчиненной формы: таблицы и запросы или формы, которые имеются в БД. Если в БД уже были созданы одна или несколько форм, то в этом случае необходимо выбрать пункт Имеющиеся таблицы и запросы и нажать Далее>.
Второй этап предполагает выбор полей из одной или нескольких таблиц, которые необходимо включить в подчиненную форму. В рассматриваемом примере нужно из таблицы Успеваемость выбрать поля КодПредмета, Оценка и ДатаСдачи. Следует отметить, что вместо названий предметов в форму были добавлены только их коды (поле КодПредмета). Однако в режиме формы вместо кодов будут отображаться названия предметов, т.к. для поля КодПредмета таблицы Успеваемость была использована подстановка поля Название из таблицы Предметы.
На следующем шаге работы мастера необходимо определить поле связи между главной и подчиненной формой. В данном случае мастер автоматически определил существующую связь по полю КодСтудента между таблицами Студенты и Успеваемость. Т.е. необходимо в режиме Выбор из списка выбрать связь 'Успеваемость' для каждой записи 'Студенты', поле связи 'КодСтудента'.
На последнем этапе следует указать имя для подчиненной формы, например подчиненная форма Успеваемость и нажать Готово.
В результате получена основа сложной формы ОценкиСтудентов с использованием подчиненной формы. Для завершения создания формы можно в область заголовка добавить надпись Оценки по предметам, а также сделать подписи для данных: Студент и Оценки.
Кроме этого, можно добавить разделительную линию (объект Линия ) между данными главной и подчиненной форм. Созданная таким образом сложная форма ОценкиСтудентов приведена на рисунке 4, шаг 44.
Необходимо отметить, что для отображения названий предметов было автоматически создано поле со списком (рис. 1), при этом в его свойстве Данные содержится значение КодПредмета.
Рис. 1. Подчиненная форма Успеваемость
С другой стороны, в свойстве Источник строк данного объекта находится запрос, который содержит два поля из таблицы Предметы: КодПредмета и Название. Отображение в форме только названий предметов было достигнуто автоматической установкой следующих свойств поля на вкладке Макет (рис. 2):
Рис. 2. Свойства поля со списком КодПредмета. Вкладка Макет
Создание подчиненной формы можно увидеть здесь, а взять клип здесь.
На следующем шаге рассмотрим использование кнопок.