Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД4.doc
Скачиваний:
5
Добавлен:
29.08.2019
Размер:
197.12 Кб
Скачать

3.5.6. Создание и использование подчиненных форм

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

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

  • создать форму, нажав кнопку Создать на карточке Формы;

  • в диалоговом окне Новая форма выбрать Мастер форм;

  • в появившемся диалоговом окне Создание форм в поле со списком Таблицы / Запросы выбрать нужную таблицу (выбор таблицы выполняется лишь для удобства, так как в следующем диалоговом окне можно вместо нее выбрать другую таблицу);

  • выбрать поля для формирования главной формы;

  • в поле со списком Таблицы / Запросы выбрать таблицу или запрос для подчиненной формы;

  • в изменившемся списке доступных полей выбрать поля для формирования подчиненной формы;

  • в следующем диалоговом окне выбрать тип представления данных - в нижней части диалогового окна представлены способы Подчиненные формы и Связанные формы, в верхней части показан способ представления данных Подчиненные формы, который автоматически выбирается Access на основе анализа связи один-ко-многим между выбранными таблицами;

  • в следующем диалоговом окне выбрать внешний вид представления данных, причем вид Ленточный предоставляет большую гибкость при изменении некоторых параметров (в виде Табличный нельзя применять для столбцов заголовки из нескольких строк или управлять размещением полей);

  • в следующем диалоговом окне выбрать стиль главной формы, при этом подчиненная форма будет иметь тот же стиль;

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

Самым удобным способом создания подчиненных форм без использования Мастера является метод перетаскивания формы из окна БД, потому что в этом случае Access пытается установить связь между формами.

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

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

  • создать пустую форму, используя специально разработанный для этого запрос в качестве источника записей;

  • выполнить команду Вид | Список полей и перетащить в форму все поля из появившегося диалогового окна;

  • задать значение Таблица для свойства формы Режим по умолчанию;

  • отобразить форму в режиме таблицы для проверки результатов (если поля не помещаются на экране, то надо использовать полосу прокрутки или изменить форму);

  • сохранить форму.

Готовую подчиненную форму можно вставить в главную. Самый простой способ сделать это - отобразить главную форму и перетащить в нее подчиненную, при этом автоматически будет создан элемент управления подчиненной формы, и они, возможно, будут связаны. Для вставки подчиненной формы в главную нужно выполнить перечисленные ниже действия:

  • отобразить главную форму в режиме конструктора так, чтобы было видно и окно БД;

  • отобразить объекты карточки Формы в окне БД;

  • выделить подчиненную форму и перетащить ее в главную;

  • раскрыть окно формы на весь экран;

  • задать такой размер подчиненной формы, чтобы она помещалась на экране ниже главной;

  • удалить надпись подчиненной формы;

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

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

При перетаскивании формы из окна БД в другую форму для создания подчиненной формы Access пытается автоматически установить связь между формами. То же самое происходит и при перетаскивании какой-либо формы или отчета в другой отчет.

Access устанавливает связь, если соблюдаются следующие условия:

  • главная и подчиненная форма создана на основе таблиц, связь между которыми указана в окне Схема данных;

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

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

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

В подчиненных формах можно создать строки итогов. Для этого в ней необходимо построить дополнительное вычисляемое поле. Итоговые значения для всей формы создаются так же, как и для отчета. Для этого можно использовать нижний колонтитул, при этом вычисления будут выполнены после обработки всех записей из области данных. При отображении формы в виде Простая форма итог будет равен итогу данной записи, для формы в виде Ленточная или Таблица он будет содержать сумму обработанных записей. Так, если свойство Данные содержит выражение =Sum([<П о л е X >]), то будут просуммированы все значения поля <П о л е X>.

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

=[Forms]![<имя главной формы>]![<имя подчиненной формы>].[Form]![<П о л е X> Sum]

Access 97

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]