Определение подсхемы данных для составной формы
Поскольку объект загрузки ГРУППА—СТУДЕНТ не подчиняется в схеме данных другим таблицам, подсхема, необходимая для построения формы, не должна включать других таблиц. Такая подсхема приведена на рис. 4.15.
Рис. 4.15. Подсхема данных для конструирования формы ввода/вывода на базе таблиц ГРУППА—СТУДЕНТ
Определение общей структуры составной формы
В соответствии с приведенной подсхемой определим общую структуру составной формы, которую назовем СПИСОК ГРУППЫ.
Для того чтобы обеспечить удобный ввод данных с документа, в форме предусмотрим основную часть с реквизитами группы и подчиненную с записями о студентах группы. Подчиненную форму назовем СПИСОК СТУДЕНТОВ.
Таким образом форму СПИСОК ГРУППЫопределяют.
• тип формы — многотабличная,
• источник записей для основной части формы — таблица ГРУППА,
• включаемая подчиненная форма СПИСОК СТУДЕНТОВ.
Форму СПИСОК СТУДЕНТОВ определяют:
• тип формы — подчиненная, многозаписевая,
• источник записей — таблица СТУДЕНТ.
Размещение реквизитов основной и подчиненной форм
Размещение реквизитов в основной части формы и подчиненной форме должно соответствовать входному документу "Список студентов группы"
В основной части составной формы СПИСОК ГРУППЫвверху разместим названия реквизитов, соответствующие полям таблицы ГРУППА:
• номер группы (НГ-ключ),
• количество студентов (КОЛ),
• средний балл группы при поступлении (ПБАЛЛ).
Расчетный реквизит ПБАЛЛ включаем в форму, т. к. она будет использоваться не только для загрузки, но и для просмотра данных.
В подчиненной форме СПИСОК СТУДЕНТОВ разместим в качестве заголовков столбцов многозаписевой формы названия реквизитов, соответствующих полей таблицы СТУДЕНТ:
• номер студента в группе (НС),
• фамилия И.О. (ФИО),
• год рождения (ГОДР),
• адрес (АДРЕС),
• средний балл при поступлении (ПБАЛЛ).
Замечание. Ключевое поле НГ не включено в подчиненную форму, т. к. НГ включен в основную часть формы.
Создание формы для двух таблиц с помощью мастера
Создадим средствами Access форму для одновременной загрузки и корректировки двух таблиц ГРУППА и СТУДЕНТ в базе данных Учебный процесс.
Определение таблиц и полей для основной и включаемой частей формы
В окне базы данных выбираем закладку Форма и нажимаем кнопку Создать (New). В окне Новая форма (New Form) (рис. 4.7) выбираем таблицу ГРУППА, которая будет служить источником данных для основной части создаваемой многотабличной формы, и Мастер форм. В открывшемся окне Создание форм выберем для таблицы ГРУППА поля, включаемые в форму (рис. 4.16). Выберем также вторую таблицу СТУДЕНТ и ее поля. Эта таблица будет источником записей подчиненной формы, связанных с записью отображаемой в основной части формы.
Выбор типа формы
В следующем окне Создание форм уже будет выделена таблица ГРУППА для создания основной части формы (рис. 4.17).
Поскольку эта таблица является главной в схеме данных относительно другой таблицы СТУДЕНТ, представляется возможность выбора типа формы с включением подчиненной формы или создание связанной формы. Выберем первый вариант — Подчиненные формы.
Далее предоставляется возможность выбрать внешний вид подчиненной формы — Ленточный или Табличный. Выберем Ленточный для получения многозаписевой подчиненной формы и вывода в ней подписей полей (из структуры таблиц) вместо их имен. В следующем окне выберем стиль оформления Обычный с утопленными полями.
Назначение имени формы и ее открытие
В последнем окне Создание форм (рис. 4.18) введем имя составной формы - СПИСОК ГРУППЫ- и подчиненной формы - СПИСОК СТУДЕНТОВ.
Выберем также дальнейшие действия мастера — Открытие формы для просмотра или ввода данных.
После завершения работы мастера выводится форма с данными из таблиц базы данных. При этом в подчиненной форме выводятся все записи, связанные с текущей записью основной части формы (рис. 4.19).
Рис. 4.19. Многотабличная форма, созданная мастером на основе двух взаимосвязанных таблиц
Созданная мастером форма может использоваться для работы с данными и без доработки. В случае необходимости можно отобразить данные подчиненной формы в виде таблицы с именами полей. Для этого в режиме формы выполняется команда Вид/Таблица подчиненной формы, работающая как переключатель. Курсор предварительно устанавливается на подчиненной форме.
Если в окне Создание форм (рис. 4.18) выбрать дальнейшие действия мастера — Изменение макета формы, мастер закончит свою работу выводом формы в режиме конструктора.
Редактирование формы в режиме конструктора