- 29 сентября 2026
- 7 минут
- 6
Статью подготовили специалисты образовательного сервиса Zaochnik.
Формы с подчинённой формой в Access: как связать главные и вложенные данные
Как связать главные и вложенные данные
Форма с подчинённой формой пригодится тогда, когда нужно редактировать сведения из двух связанных таблиц либо из таблицы и запроса, соединённых отношением «один-ко-многим». Главная форма при этом показывает данные одной записи, а подчинённая — сразу несколько записей, привязанных к этой главной записи. Как правило, подчинённые формы оформляют в ленточном или табличном виде. Их часто применяют, чтобы создавать вычисляемые поля и подсчитывать итоговые значения по записям вложенной формы.
Постановка задачи на конкретном примере
Разберём создание формы, которая для каждого читателя библиотеки выводит перечень книг у него на руках. В список войдут авторы, названия, даты выдачи и возврата, а также поле Пеня, которое рассчитывается в отдельном запросе — назовём его Список1. Допустим, пеню начисляют в размере 1% от стоимости книги за каждый просроченный день. Дополнительно посчитаем общую сумму пени по каждому читателю.
У будущей формы будет подчинённая форма со списком книг конкретного читателя. Данные во вложенную форму поступят из запроса Список1, подготовленного заранее. Такой подход позволяет объединить сведения о читателе и о взятых им книгах на одном экране.
Построение макета через Мастер форм
Первичный макет удобно собрать с помощью Мастера форм, а затем довести до ума в Конструкторе. Чтобы создать форму, выполните следующие шаги:
- В окне базы данных перейдите на вкладку Формы и нажмите кнопку Создать.
- В окне Новая форма укажите источник данных: в раскрывшемся списке таблиц выберите таблицу Читатели. В соседнем поле отметьте Мастер форм и нажмите ОК.
- В окне Создание форм перенесите из списка Доступные поля в список Выбранные поля нужные поля: NB, Фамилия, Кафедра и Телефон. Затем в верхнем списке таблиц и запросов выберите запрос Список1 — его поля появятся среди доступных, — и перенесите в Выбранные поля все поля запроса.
- На следующем шаге задайте тип отображения данных. Выберите вариант по Читатели, поскольку главной станет форма со сведениями о читателях. Отметьте переключатель Подчинённые формы, чтобы остальные данные попали во вложенную форму, и нажмите Далее.
- Дальше выберите вид подчинённой формы. Поскольку удобнее видеть все данные о книгах в табличном представлении, отметьте переключатель ленточный и нажмите Далее.
- Затем определите стиль главной формы. Выбранный стиль сразу отобразится в окне предпросмотра, как только вы отметите его в списке. Нажмите Далее.
- На финальном шаге задайте имена главной и подчинённой форм. Access создаст две связанные между собой формы. Их можно править в Конструкторе независимо друг от друга, а подчинённую форму — использовать отдельно от главной. Назовите главную форму Читатели, а подчинённую — Список1. Нажмите Готово, и созданная форма появится на экране.
Доработка формы в Конструкторе
Следующий шаг — улучшить готовую форму средствами Конструктора форм. Сначала добавьте в форму Список1 поле, где будет подсчитываться общая сумма пени по каждому читателю. В режиме Конструктора вычисляемое поле Всего пени размещают в области Примечание формы.
Порядок действий такой:
- Откройте подчинённую форму Список1 в режиме Конструктора. В области Примечание формы создайте новое вычисляемое поле и назовите его Всего пени. В окне Свойства для графы Данные задайте формулу подсчёта суммы пени — =Sum(Пеня). Подпись перед этим полем при желании измените. Форма готова: сохраните правки и откройте её для просмотра. В форме появятся записи обо всех выданных книгах, а в нижнем поле — итоговая сумма пени. Обратите внимание, что размеры полей с информацией о книгах подобраны так, чтобы автор и название выводились в несколько строк и содержимое читалось полностью.
- Далее займитесь внешним видом формы Читатели. Откройте её в режиме Конструктора и выполните такие действия:
- растяните мышью область Заголовок формы, добавьте элемент управления Надпись и введите текст «Информация о читателях и выданных книгах». Затем поменяйте начертание и размер шрифта, чтобы заголовок смотрелся аккуратнее;
- сдвиньте поля Кафедра и Телефон вправо, освобождая место под подчинённую форму;
- растяните подчинённую форму на всё свободное пространство.
- Откройте форму в режиме просмотра.
Настройка кнопок перехода в подчинённой форме
Внизу каждой формы располагается элемент управления Кнопки перехода. Он даёт возможность перемещаться по записям, а также создавать новые пустые записи и заполнять их. Этот элемент появляется в форме, когда её свойство Кнопки перехода имеет значение Да. Если поменять значение на Нет, кнопки перехода отображаться не будут.
Во вложенной форме такой элемент не обязателен. Поэтому снова откройте форму Список1 в режиме Конструктора, вызовите окно Свойства для формы, найдите свойство Кнопки перехода и переключите его значение на Нет. После этого подчинённая форма станет выглядеть аккуратнее, а лишние элементы управления не будут отвлекать при просмотре главной формы.
Связка главной и подчинённой форм напрямую опирается на отношение «один-ко-многим»: одной записи главной формы соответствует несколько записей вложенной. Именно поэтому вычисляемые итоги — например, сумму пени через =Sum() — логично размещать в области Примечание подчинённой формы, ведь она агрегирует данные всех связанных записей конкретного читателя.
Вид подчинённой формы стоит выбирать под характер данных. Ленточный и табличный форматы удобны, когда нужно охватить взглядом сразу множество строк, тогда как отключение кнопок перехода во вложенной форме избавляет интерфейс от дублирующих элементов и снижает риск случайного создания лишних записей.