Связи таблиц и простые формы

Программа Access достаточно сообразительна, чтобы заметить связи во время создания но­вой формы для родительской таблицы. Для того чтобы понять, что это значит на практике, выделите таблицу-родитель для другой таблицы. Можно воспользоваться таблицей ProductCategories в БД Boutique Fudge, поскольку каждая категория служит родительской записью, связанной с одной или несколькими записями-потомками в таблице Products. (Можно также использовать таблицу Customers, поскольку клиенты связаны с заказами, или таблицу Orders,т. к. заказы связаны с конкретными компонентами заказа. Для практической проверки примените БД Boutique Fudge для данной главы, содержащую загружае­мые из Интернета данные.)

На рис. 13.20 показано, что произойдет, если выделить таблицу ProductCategories, а за­тем выбрать на ленте Создание → Формы → Форма.Программа Access создает форму, которая выводит ожидаемые записи (категории) и связанные записи из таблицы-потомка (в данном случае товары).

Примечание

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

Связи таблиц и простые формы - student2.ru

Рис. 13.20.Эта форма позволяет просматривать разные категории товаров. При каждом переходе к новой категории мини-лист данных на форме отображает связанные записи о товарах. С помощью такой формы можно редактировать данные о товарах и о категории товаров

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

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

Программа выводит связанные записи с помощью элемента управления Подчиненная фор­ма.Этот элемент можно добавить на любую форму для отображения связанных записей. Он доступен в группе ленты Инструменты конструктора форм | Конструктор → Элементы

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

То, что отображает подчиненная форма, определяется тремя свойствами. Первое свойст­во Объект-источник(Source Object) задает объект БД, имеющий связанные записи. Можно выбрать существующие таблицу, запрос или форму.

Следующие два свойства — Основные поля(Link Master Fields) и Подчиненные поля (Link Child Fields) — позволяют определить способ связи двух таблиц. Основное поле — это поле в форме, а подчиненное поле — это поле в объекте-источнике. В примере с категориями товаров основное поле — ID (в таблице ProductCategories)и подчиненное поле — поле ProductID(в таблице Products).После того как эта связь определена, программа Access знает, как фильтровать подчиненную форму. Она просматривает основное поле и отобража­ет только те записи, у которых то же значение в подчиненном поле. На рис. 13.20 Access ото­бражает товары текущей категории.

Обычно основное поле относится к родительской таблице, а подчиненное поле — к таб­лице-потомку. Но это отношение можно изменить на обратное. Можно создать форму с то­варами, которая включает подчиненную форму, отображающую категорию, соответствую­щую каждому товару. Если применяется подобный подход, подчиненная форма включает только одну запись (т. к. только один родитель связан с каждой записью).

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

Подсказка

Если в форму включена подчиненная форма, подумайте об использовании средств привязки, описанных в разд. "Привязка: автоматическое изменение размеров элементов управления" ра­нее в этой главе, так чтобы подчиненная форма увеличивалась за счет доступного свободного пространства, появляющегося при изменении размера формы.

Наши рекомендации