Определение общей структуры составной формы
В соответствии с приведенной подсхемой определим общую структуру составной формы, которую назовем СПИСОК ГРУППЫ.
Рис. 4.39. Подсхема данных для конструирования формы на базе таблиц ГРУППА -> СТУДЕНТ
Для того чтобы обеспечить удобный ввод данных с документа, в форме предусмотрим основную часть с реквизитами группы и подчиненную с записями о студентах группы. Подчиненную форму назовем СПИСОК СТУДЕНТОВ.
Таким образом, составную форму СПИСОК ГРУППЫ определяют:
- Тип формы – многотабличная
- Источник записей для основной части формы – таблица ГРУППА
- Включаемая подчиненная форма – СПИСОК СТУДЕНТОВ
Подчиненную форму СПИСОК СТУДЕНТОВ определяют:
- Тип формы – подчиненная, многозаписевая
- Источник записей – таблица СТУДЕНТ
На подсхеме (рис. 4.39) показано назначение таблиц при создании формы.
Размещение реквизитов основной и подчиненной формы
Размещение реквизитов в основной части формы и подчиненной форме должно соответствовать входному документу «Список студентов группы» (см. главу 2).
В основной части составной формы СПИСОК ГРУППЫ вверху разместим реквизиты, соответствующие полям таблицы ГРУППА:
- Номер группы (НГ - ключ)
- Количество студентов (КОЛ)
- Средний проходной бал в группе (ПБАЛЛ)
В подчиненной форме СПИСОК СТУДЕНТОВ разместим в качестве заголовков столбцов многозаписевой формы названия реквизитов соответствующих полей таблицы СТУДЕНТ:
- Номер студента в группе (НС)
- Фамилия И. О. (ФИО)
- Год рождения (ГОДР)
- Адрес (АДРЕС)
- Средний балл при поступлении (ПБАЛЛ)
Заметим, что ключевое поле НГ не включено в подчиненную форму, т. к. поле связи НГ включено в основную часть формы.
Создание формы для двух таблиц с помощью мастера
Осуществим средствами Access конструирование формы для одновременной загрузки и корректировки двух таблиц ГРУППА и СТУДЕНТ в базе данных «Учебный процесс».
Определение таблиц и полей для основной и включаемой частей формы
В окне …: базы данных (Database) (см. рис. 4.9) выбираем в группе Объекты (Objects) строку Формы (Forms) и нажимаем кнопку Создать (New).
Рис. 4.40. Выбор полей для формы в окне мастера форм
В диалоговом окне Новая форма (New Form) выбираем режим создания Мастер форм (Form Wizard) и таблицу ГРУППА, которая будет служить источником данных для основной части, создаваемой многотабличной формы.
В открывшемся окне Создание форм (Form Wizard) в списке Таблицы/Запросы (Tables/Queries) будет уже отражена ранее выбранная таблица ГРУППА. Выберем для нее в списке Доступные поля (Available Fields) те поля, которые вошли в спроектированный макет формы, перемещая их в область Выбранные поля (Selected Fields). Выберем далее таблицу СТУДЕНТ и ее поля (рис. 4.40). Эта таблица будет источником записей подчиненной формы, связанных с записью отображаемой в основной части формы.
Выбор типа формы
В следующем сеансе окна Создание форм (Form Wizard) отображается макет формы с перечнем полей в основной части формы и в подчиненной форме (рис. 4.41). В этом окне уже будет выделена таблица ГРУППА – источник записей основной части формы. Таблица СТУДЕНТ – источник записей подчиненной формы. Для непосредственного включения подчиненной формы выберем первый вариант – Подчиненные формы (Form with sub form(s)).
Рис. 4.41. Выбор варианта явного включения подчиненной формы
В следующем сеансе диалогового окна мастера выбираем внешний вид подчиненной формы ленточный (Tabular) для получения многозаписевой подчиненной формы и вывода в ней подписей полей (определенных в свойствах таблиц). В очередном сеансе диалогового окна выберем стиль оформления Стандартный (Standard) с утопленными полями.
Присвоение имени форме и ее открытие
В последнем сеансе окна Создание форм (Form Wizard) (рис. 4.42) введем имена (заголовки) составной формы – СПИСОК ГРУППЫ и подчиненной формы – СПИСОК СТУДЕНТОВ. Выберем также дальнейшие действия мастера – Открытие формы для просмотра и ввода данных (Open the form to view or enter information).
Рис. 4.42. Окно ввода имен форм и выбора дальнейших действий мастера
В соответствии с выбранными действиями после завершения работы мастера выводиться форма с данными из таблиц базы данных.
Рис. 4.43. Многотабличная форма, созданная мастером на основе таблиц ГРУППА и СТУДЕНТ
При этом в подчиненной форме выводятся те записи таблицы СТУДЕНТ, которые связаны с текущей записью таблицы ГРУППА, данные которой отображаются в основной части формы (рис. 4.43).
Замечание При работе с формой в случае необходимости можно отобразить данные подчиненной формы в виде таблицы с именами полей таблицы БД. Для этого в режиме формы выполняется команда Вид|Таблица подчиненной формы (View|Subform Datasheet), работающая как переключатель. Курсор предварительно устанавливается на подчиненной форме.