Запросы могут обеспечить любую информацию из связанных таблиц, но с ограничениями в смысле ее интерактивного редактирования. Эти ограничения связаны с Целостностью данных. Механизмом, свободным от ограничений по редактированию независимо от включения / выключения Целостности данных, является механизм подчиненной формы. Форма может отображать информацию (поля) из нескольких таблиц или запросов. Но для этого необходимо, чтобы между этими объектами существовали отношения (связи).
Подчиненная форма - это форма внутри главной формы, позволяющая вводить и отображать данные со связями «один ко многим». Главная форма представляет часть «один», подчиненная - «многим».
В подчиненной форме выводятся только те записи, которые связаны с текущей записью в главной форме. Главная форма может быть выведена только как простая. Подчиненная - как таблица, ленточная, простая.
Для создания подчиненной формы:
1. Открыть ранее созданную форму, для которой необходимо создать подчиненную в режиме Конструктора.
2. Добавить на созданную форму подчиненный объект с помощью кнопки Подчиненная форма/отчет на Панели элементов, в результате чего начнет выполнение мастер подчиненных форм (кнопка Мастера на панели элементов должна быть активна).
3. Будет отображено окно, в котором следует выбрать источник данных для подчиненной формы: таблицы и запросы или формы, которые имеются в БД. Если в БД уже были созданы одна или несколько форм, то в этом случае необходимо выбрать пункт Имеющиеся таблицы и запросы и нажать Далее>.
4. В списке Таблицы и запросы выбрать имя нужной таблицы или запроса и добавить поля из одной или нескольких таблиц, которые необходимо включить в подчиненную форму.
5. Выбрать из списка поле связи между главной и подчиненной формой. Access устанавливает связь автоматически при соблюдении следующих условий:
· Главная и подчиненная формы созданы на основе таблиц, между которыми указана связь в Схеме БД.
· Главная форма базируется на таблице с ключом, а подчиненная форма базируется на таблице, содержащей поле с тем же именем, что и ключевое поле и с тем же или совместимым типом данных. Если Access обнаружил связь, то в строках свойств будут показаны имена полей связи и нужно убедиться в правильности. Если главная таблица базируется на запросе (или не выполнено одно из условий), Access не выполнит автосвязывание.
6. Указать имя для подчиненной формы и нажать Готово.
Размеры подчиненной формы определяются исходным прямоугольником, который был начерчен.
Рисунок 5 – Окно главной и подчиненной формы.
Готовую подчиненную форму можно вставить в любую другую форму. При этом на главной форме будет создан элемент управления подчиненной формы и они, возможно, будут связаны. Для этого:
1. Отобразить главную форму в режиме конструктора и установить размер окна в среднее положение так, чтобы было видно окно БД.
2. В окне БД открыть Формы и перетащить подчиненную форму.
3. Вызвать окно свойств подчиненной формы для проверки или установления связи.
С помощью щелчка на прямоугольнике можно открыть подчиненную форму в режиме проектирования. Так как эта форма была сохранена под собственным именем, ее можно использовать как в качестве подчиненной формы, так и в качестве самостоятельной, независимой формы.