Читайте также:
|
|
К многотабличным формам относят формы, построенные на основе запроса, объединяющего несколько таблиц, а также формы с внедренными в них другими формами. Создание многотабличных форм на основе запроса рассматривалось ранее (см. также разд. "Создание форм для ввода данных" гл. 5).
В данном разделе мы остановимся на создании сложных форм, включающих подчиненные формы.
Подчиненной формой называется форма, которая встраивается в другую форму. При этом форма, которая включает подчиненную форму, называется основной ('или главной) формой.
Обычно такие формы применяются для отображения данных из связанных таблиц, например категории товаров и товары, организации и контактные лица в этих организациях и т. д. Однако это бывает не всегда. Иногда главная форма содержит свободные элементы управления и различные кнопки, которые влияют на представление данных в подчиненной форме. Типичным примером такой формы является форма для отбора записей в таблице. Основная форма содержит поля, в которых задаются критерии отбора и кнопки Фильтр или Поиск и Отмена фильтра или Показать все (рис. 9.29).
Рис. 9.29. Пример формы, содержащей подчиненную форму
Применение встроенных подчиненных форм обеспечивает более компактное представление на экране данных из нескольких таблиц, чем использование разных форм для каждой таблицы.
Создавать такие формы можно разными способами. Рассмотрим сначала способы создания главной и подчиненной форм для двух связанных таблиц.
Создание главной и подчиненной форм с помощью Мастера автоформ
В предыдущей версии Access — Access 2000 появилась возможность более интеллектуального автоматического отслеживания связей между таблицами. Поэтому самые простые формы для связанных таблиц можно построить с помощью Мастера автоформ. Он сразу найдет все таблицы, которые связаны с главной отношением "один-ко-многим", и создаст для каждой такой таблицы подчиненную форму. В качестве примера давайте создадим новую форму "Клиенты", в которой должны быть отражены не только данные о клиенте, но и о его заказах.
Сначала откройте окно Схема данных (Relationship) и посмотрите, как связаны интересующие нас таблицы (рис. 9.30). Таблица "Клиенты" (Customers) связана с таблицей "Заказы" (Orders) отношением "один-ко-многим". В свою очередь таблица "Заказы" (Orders) связана с таблицей "Заказано" (Order Details) тоже отношением "один-ко-многим".
Рис. 9.30.Диалоговое окно Схема данных
Теперь в окне базы данных на странице Таблицы (Table) выделите таблицу "Клиенты" и нажмите стрелку вниз на кнопке Новый объект (New Object) на панели инструментов. В открывшемся списке выберите объект Автоформа (AutoForm).
Подождите, пока Мастер автоформ закончит свою работу. В результате вы должны увидеть на экране форму, которая представлена на рис. 9.31.
Чтобы открыть вторую подчиненную форму (список подчиненных записей следующего уровня), просто щелкните мышью по квадратику с крестом слева от выбранной записи в подчиненной форме. В данном примере в главной форме отображается одна запись о клиенте, а в подчиненной форме отображаются только те записи из таблицы "Заказы" (Orders), которые связаны с текущей записью в главной форме, т. е. только заказы текущего клиента. В списке подчиненных записей для выбранного заказа отображается список заказанных продуктов.
Рис. 9.31.Составная форма, созданная Мастером автоформ
Уже из этой формы видно, что Access обеспечивает вложенность подчиненных форм, причем максимальное количество уровней вложенности достаточно велико — 7. С другой стороны, если таблица связана отношением "один-ко-многим" с несколькими таблицами, то в одну главную форму можно встроить любое количество подчиненных форм.
Такое иерархическое представление связанных данных удобно не только для отображения, но и для ввода данных.
Например, нужно оформить заказ клиенту, которого еще нет в базе данных. Значит, требуется добавить запись о новом клиенте в таблицу. Для этого перейдите в режим ввода записи в главной форме, щелкнув мышью по кнопке Новая запись (New Record) внизу формы или на панели инструментов. Введите данные о клиенте, а затем переместите фокус в подчиненную форму для оформления заказа. Как только вы переместите фокус в подчиненную форму, запись о клиенте из главной формы будет сохранена. Теперь подчиненная запись о заказе будет корректно добавлена в таблицу "Заказы" (Orders), гарантируя сохранение ссылочной целостности.
Аналогично будет сохранена запись о заказе, прежде чем начнут вводиться данные о заказанных продуктах во вложенной подчиненной форме. Записи в подчиненной форме сохраняются при переходе к каждой следующей строке.
Дата добавления: 2015-07-24; просмотров: 98 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Элементы управления Линиям Прямоугольник | | | Использование Мастера форм для создания главной и подчиненной форм |