Преобразование одного элемента управления в другой


Иногда в процессе разработки формы требуется изменить тип элемента управления для отображения какого-либо поля. Такая ситуация может возникнуть, например, из-за ошибки в начальном выборе типа элемента. Чаще всего требуется преобразовать текстовое поле в поле со списком или изменить тип элемента выбора, заменив флажок переключателем или выключатель переключателем. В режиме Конструктора форм можно легко это сделать:

  1. Выделите на форме элемент управления, тип которого нужно изменить, щелкнув по нему правой кнопкой мыши.
  2. В появившемся контекстном меню выберите команду Преобразовать элемент в (Change To).
  3. Справа раскроется меню, в котором будут доступны только те типы элементов, в которые может быть преобразован выбранный элемент управления. Например, для текстового поля это может быть поле со списком, список или надпись.
  1. Выберите в меню нужный тип элемента управления. Элемент будет немедленно преобразован.

Замечание
Вместо контекстного меню для выполнения операции можно использовать команду меню Формат, Преобразовать элемент в (Format, Change To).
Создание многотабличных форм
К многотабличным формам относят формы, построенные на основе запроса, объединяющего несколько таблиц, а также формы с внедренными в них другими формами. Создание многотабличных форм на основе запроса рассматривалось ранее .
В данном разделе мы остановимся на создании сложных форм, включающих подчиненные формы.
Подчиненной формой называется форма, которая встраивается в другую форму. При этом форма, которая включает подчиненную форму, называется основной (‘или главной) формой.
Обычно такие формы применяются для отображения данных из связанных таблиц, например категории товаров и товары, организации и контактные лица в этих организациях и т. д. Однако это бывает не всегда. Иногда главная форма содержит свободные элементы управления и различные кнопки, которые влияют на представление данных в подчиненной форме. Типичным примером такой формы является форма для отбора записей в таблице. Основная форма содержит поля, в которых задаются критерии отбора и кнопки Фильтр или Поиск и Отмена фильтра или Показать все (рис. 9.29).
Применение встроенных подчиненных форм обеспечивает более компактное представление на экране данных из нескольких таблиц, чем использование разных форм для каждой таблицы.
Создавать такие формы можно разными способами. Рассмотрим сначала способы создания главной и подчиненной форм для двух связанных таблиц.
 
Создание главной и подчиненной форм с помощью Мастера автоформ
В предыдущей версии Access — Access 2000 появилась возможность более интеллектуального автоматического отслеживания связей между таблицами. Поэтому самые простые формы для связанных таблиц можно построить с помощью Мастера автоформ. Он сразу найдет все таблицы, которые связаны с главной отношением "один-ко-многим", и создаст для каждой такой таблицы подчиненную форму. В качестве примера давайте создадим новую форму "Клиенты", в которой должны быть отражены не только данные о клиенте, но и о его заказах.
Сначала откройте окно Схема данных (Relationship) и посмотрите, как связаны интересующие нас таблицы . Таблица "Клиенты" (Customers) связана с таблицей "Заказы" (Orders) отношением "один-ко-многим". В свою очередь таблица "Заказы" (Orders) связана с таблицей "Заказано" (Order Details) тоже отношением "один-ко-многим".
Теперь в окне базы данных на странице Таблицы (Table) выделите таблицу "Клиенты" и нажмите стрелку вниз на кнопке Новый объект (New Object) на панели инструментов. В открывшемся списке выберите объект Автоформа (AutoForm).
Подождите, пока Мастер автоформ закончит свою работу. В результате вы должны увидеть на экране форму, которая представлена на.
Чтобы открыть вторую подчиненную форму (список подчиненных записей следующего уровня), просто щелкните мышью по квадратику с крестом слева от выбранной записи в подчиненной форме. В данном примере в главной форме отображается одна запись о клиенте, а в подчиненной форме отображаются только те записи из таблицы "Заказы" (Orders), которые связаны с текущей записью в главной форме, т. е. только заказы текущего клиента. В списке подчиненных записей для выбранного заказа отображается список заказанных продуктов.
Уже из этой формы видно, что Access обеспечивает вложенность подчиненных форм, причем максимальное количество уровней вложенности достаточно велико — 7. С другой стороны, если таблица связана отношением "один-ко-многим" с несколькими таблицами, то в одну главную форму можно встроить любое количество подчиненных форм.
Такое иерархическое представление связанных данных удобно не только для отображения, но и для ввода данных.
Например, нужно оформить заказ клиенту, которого еще нет в базе данных. Значит, требуется добавить запись о новом клиенте в таблицу. Для этого перейдите в режим ввода записи в главной форме, щелкнув мышью по кнопке Новая запись (New Record) внизу формы или на панели инструментов. Введите данные о клиенте, а затем переместите фокус в подчиненную форму для оформления заказа. Как только вы переместите фокус в подчиненную форму, запись о клиенте из главной формы будет сохранена. Теперь подчиненная запись о заказе будет корректно добавлена в таблицу "Заказы" (Orders), гарантируя сохранение ссылочной целостности.

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