Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»)

Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»)

При работе с реляционными данными (т. е. связанными данными, которые хранятся в разных таблицах) нередко требуется просматривать несколько таблиц или запросов в одной форме. Например, может потребоваться одновременно просмотреть данные клиента из одной таблицы и сведения о его заказах из другой. Подчиненные формы — удобный инструмент для подобных задач, и в Access их можно быстро создать несколькими способами.

Примечание : Статья неприменима к веб-приложениям Access — новому типу баз данных, которые создаются в Access и публикуются в Интернете.

В этой статье

Сведения о подчиненных формах

Создание или добавление подчиненной формы

Создание формы, содержащей подчиненную форму, с помощью мастера форм

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

Создание подчиненной формы путем перетаскивания одной формы в другую

Открытие подчиненной формы в новом окне в конструкторе

Изменение представления по умолчанию для подчиненной формы

Добавление связанных данных в форму без создания подчиненной формы

Сведения о подчиненных формах

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

Подчиненные формы особенно удобны для отображения данных из таблиц или запросов с отношением "один-ко-многим". Отношение "один-ко-многим" представляет собой связь между двумя таблицами, при которой значение первичного ключа каждой записи в главной таблице соответствует значению в соответствующем поле или полях нескольких записей в связанной таблице. Например, можно создать форму, в которой отображаются сведения о сотрудниках и которая содержит подчиненную форму с заказами каждого сотрудника. Данные в таблице "Сотрудники" являются в отношении стороной "один". Данные в таблице "Заказы" являются в отношении стороной "многие" — для каждого сотрудника может быть несколько заказов.

Форма, содержащая подчиненную форму

1. В основной форме отображаются данные на стороне отношения "один".

2. В подчиненной форме выводятся данные на стороне отношения "многие".

Основная и подчиненная формы взаимодействуют таким образом, что в подчиненной выводятся только те записи, которые связаны с текущей записью в основной. Например, если в основной форме отображаются данные Ольги Зуевой, то в подчиненной отображаются только ее заказы. Если связь между основной и подчиненной формами была разорвана, то в подчиненной форме будут отображаться заказы всех сотрудников, а не только Ольги.

В таблице ниже даны определения некоторых терминов, связанных с подчиненными формами. При использовании процедур, описанных в этой статье, большинство операций выполняются в приложении Access автоматически. Однако полезно понимать, что при этом происходит, на случай если впоследствии потребуется внести изменения.

Термин

Определение

Элемент управления подчиненной формы

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

Свойство "Объект-источник"

Свойство элемента управления подчиненной формы, определяющее, какой объект в нем отображается.

Таблица

Простое отображение данных в строках и столбцах, как в электронной таблице. В элементе управления подчиненной формы отображается таблица, когда объектом-источником является таблица или запрос, либо форма, для свойства "Режим по умолчанию" которой задано значение "Режим таблицы". В этих случаях подчиненную форму иногда называют таблицей или подтаблицей.

Свойство "Подчиненные поля"

Свойство элемента управления подчиненной формы, которое задает поле или поля в подчиненной форме, которые будут связывать ее с основной.

Свойство "Основные поля"

Свойство элемента управления подчиненной формы, которое задает поле или поля в основной форме, которые будут связывать ее с подчиненной.

Примечания : 

  • Перед тем, как выполнить описанные в этой статье действия, мы рекомендуем настроить связи между таблицами. Это позволит Access автоматически создать связи между основными и подчиненными формами. Чтобы просмотреть, добавить или изменить связи между таблицами в базе данных, на вкладке Работа с базами данных в группе Показать или скрыть нажмите кнопку Схема данных.

  • Когда элемент управления подчиненной формы имеет в качестве объекта-источника форму, он содержит поля, помещенные в нее и его можно просмотреть как одиночную форму, ленточную форму или таблицу. Одним из преимуществ создания подчиненной формы на основе формы является возможность добавления вычисляемых полей в подчиненную форму, например: [Количество] * [Цена].

  • Можно также вставить в форму таблицу или сводное представление путем создания элемента управления подчиненной формы, объектом-источником для которого служит таблица или запрос. Дополнительные сведения см. в разделе Добавление связанных данных в форму без создания подчиненной формы.

К началу страницы

Создание или добавление подчиненной формы

В таблице ниже представлены рекомендации по выбору процедуры, которая лучше всего подходит для конкретной ситуации.

Сценарий

Рекомендуемая процедура

Нужно создать в приложении Access основную и подчиненную формы и связать их.

Создание формы, содержащей подчиненную форму, с помощью мастера форм

Нужно использовать существующую форму в качестве основной, но при этом создать в Access новую подчиненную форму и добавить ее в основную.

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

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

Создание подчиненной формы путем перетаскивания одной формы в другую

Создание формы, содержащей подчиненную форму, с помощью мастера форм

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

  1. На вкладке Создание в группе Формы нажмите кнопку Мастер форм. В Access 2007 на вкладке Создание в группе Формы нажмите кнопку Другие формы, а затем выберите пункт Мастер форм.

  2. На первой странице мастера в раскрывающемся списке Таблицы и запросы выберите таблицу или запрос. Например, чтобы создать форму "Сотрудники" для отображения в подчиненной форме списка заказов для каждого сотрудника, выберите пункт Таблица: Сотрудники (сторона "один" отношения "один-ко-многим").

    Примечание : Порядок выбора таблиц и запросов не имеет значения.

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

  4. На той же странице мастера в раскрывающемся списке Таблицы и запросы выберите другую таблицу или запрос. В данном примере мы выберем таблицу "Заказы" (сторона "многие" связи "один-ко-многим").

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

  6. Если до запуска мастера отношения установлены правильно, то после нажатия кнопки Далее появится сообщение Выберите вид представления данных:, т. е. предложение указать таблицу или запрос. Выберите таблицу, представляющую сторону "один" отношения "один-ко-многим". В этом примере для создания формы "Сотрудники" выберите вариант по Сотрудники. В мастере будет показано небольшое изображение формы. Страница должна выглядеть следующим образом:

    Страница подчиненной формы в мастере форм

    Поле в нижней части изображения формы обозначает подчиненную форму.

    Примечание : Если запрос Выберите способ представления данных не отображается, это означает, что приложению Access не удалось обнаружить связь "один-ко-многим" между выбранными таблицами или запросами. Мастер продолжит работу, но в форму не будет добавлена подчиненная форма. Если вы хотите сначала проверить связи между таблицами, нажмите кнопку Отмена.

  7. Установите в нижней части страницы мастера переключатель Подчиненные формы и нажмите кнопку Далее.

  8. На странице Выберите внешний вид подчиненной формы: выберите нужный вариант макета и нажмите кнопку Далее. В макетах обоих стилей данные подчиненной формы располагаются в виде строк и столбцов, но ленточный макет имеет больше возможностей настройки. В ленточной подчиненной форме можно добавлять цвет, изображения и другие элементы форматирования, однако табличный макет компактнее, как и табличное представление таблицы.

  9. На следующей странице мастера выберите стиль форматирования для формы и нажмите кнопку Далее. Если на предыдущей странице вы выбрали значение Табличный, выбранное форматирование стиля также применяется к подчиненной форме.

  10. На последней странице мастера введите заголовки форм. Имена автоматически присваиваются формам на основе введенных заголовков, а надписи подчиненных форм — на основе введенных заголовков подчиненных форм.

  11. Укажите режим, в котором вы хотите открывать форму: режим формы (чтобы можно было просмотреть или ввести данные) или Конструктор (чтобы можно было изменить ее структуру). Затем нажмите кнопку Готово.

    Access создаст две формы — основную форму, которая содержит подчиненную, и саму подчиненную форму.

К началу страницы

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

Используйте эту процедуру для добавления одной или нескольких подчиненных форм в существующую форму. Для каждой подчиненной формы можно создать новую форму или использовать существующую.

  1. В области навигации щелкните существующую форму правой кнопкой мыши и выберите пункт Конструктор.

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

  3. На вкладке Конструктор в группе Элементы управления выберите элемент Подчиненная форма/отчет.

  4. В форме щелкните место, куда нужно поместить подчиненную форму.

  5. Следуйте указаниям мастера.

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

Создание подчиненной формы путем перетаскивания одной формы в другую

Выберите эту процедуру, если нужно использовать существующую форму в качестве основной и добавить в нее одну или несколько существующих форм в качестве подчиненных.

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

  2. Перетащите форму, которую вы хотите использовать в качестве подчиненной, из области навигации на основную форму.

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

  3. Повторите этот шаг, чтобы добавить другие подчиненные формы в основную.

  4. Чтобы проверить, успешно ли создана связь, на вкладке Главная в группе Режимы нажмите кнопку Режим, выберите команду Режим формы и с помощью селектора записей основной формы просмотрите несколько записей. Если в подчиненной форме правильно отображаются данные для каждого сотрудника, это означает, что процедура завершена успешно.

Если проверка не работает, это означает, что программе Access не удалось создать связь подчиненной формы с основной и свойства Подчиненные поля и Основные поля элемента управления подчиненной формы остались пустыми. Задайте значения для этих свойств вручную, выполнив указанные ниже действия.

  1. В области навигации щелкните основную форму правой кнопкой мыши и выберите пункт Конструктор.

  2. Щелкните элемент управления подчиненной формы один раз, чтобы выделить его.

  3. Если область задач "Окно свойств" не отображается, нажмите клавишу F4.

  4. В окне свойств откройте вкладку Данные.

  5. Нажмите кнопку Построить  Кнопка "Построитель" справа от поля свойства Подчиненные поля.

    Будет открыто диалоговое окно Связь с полями подчиненной формы.

  6. В раскрывающихся списках Основные поля и Подчиненные поля выберите поля, с помощью которых вы хотите связать формы, и нажмите кнопку ОК. Если вы не уверены, какие поля нужно использовать, нажмите кнопку Предложить. Access попытается автоматически определить связывающие поля.

    Совет : Если не отображается поле, которое требуется использовать для связывания форм, возможно, придется так отредактировать источник записей основной или подчиненной формы, чтобы данное поле в нем присутствовало. Например, если форма основана на запросе, следует убедиться, что связывающее поле присутствует в результатах запроса.

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

Открытие подчиненной формы в новом окне в Конструкторе

Если вы хотите внести изменения в структуру подчиненной формы во время работы над основной формой в Конструкторе, вы можете открыть ее в отдельном окне:

  1. Щелкните подчиненную форму, чтобы выбрать ее.

  2. На вкладке Конструктор в группе Сервис нажмите кнопку Подчиненная форма в новом окне.

К началу страницы

Изменение представления по умолчанию для подчиненной формы

При добавлении подчиненной формы в форму элемент управления подчиненной формы (или отчета) отображает подчиненную форму в соответствии с ее свойством Режим по умолчанию. Ниже перечислены значения, которые можно установить для этого свойства.

  • Простая форма

  • Ленточные формы

  • Таблица

  • Разделенная форма

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

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

  1. Закройте все открытые объекты.

  2. В области навигации щелкните подчиненную форму правой кнопкой мыши и выберите пункт Конструктор.

  3. Если окно свойств не отображается, нажмите клавишу F4.

  4. Убедитесь в том, что в раскрывающемся списке в верхней части окна свойств выбран пункт Форма.

  5. На вкладке Формат окна свойств задайте для свойства Режим по умолчанию нужное значение.

    Примечание :  Если нужный режим отсутствует в списке, убедитесь в том, что для свойства "Режим..." установлено значение Да. Например, если нужно выбрать вариант Режим таблицы, убедитесь, что для свойства Режим таблицы установлено значение Да.

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

К началу страницы

Добавление связанных данных в форму без создания подчиненной формы

Для отображения связанных данных не всегда нужно создавать отдельный объект формы. Например, если при работе с формой в режиме макета или конструктора перетащить таблицу или запрос из области навигации в форму, будет создан элемент управления подчиненной формы или отчета, в котором будут отображаться данные из этого объекта. Свойство объекта Режим по умолчанию определяет способ отображения данных. Обычно для него задано значение "Режим таблицы". Если вы хотите отобразить связанные данные в формах иначе, задайте для свойства Режим по умолчанию таблицы или запроса значение Простая форма, Разделенная форма или Ленточные формы.

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

К началу страницы

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×