А. Основные справочные сведения. 1. Общие сведения о подчиненных формах

1. Общие сведения о подчиненных формах

Подчиненная форма — это форма, находящаяся внутри другой формы. Первичная форма называется главной формой, а форма внутри формы называется подчиненной формой. Комбинацию «форма/под­чиненная форма» часто называют также составной (иерархической) формой или комбинацией «родительской» и «дочерней» форм.

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

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

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

Подчиненная форма может быть выведена в режиме таблицы, как на предшествующей иллюстрации, или она может быть выведена как простая или ленточная форма. Главная форма может быть выведена только как простая форма.

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

2. Типы подчиненных форм

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

3. Механизм связи главной и подчиненной форм

Подчиненная форма обычно используется для вывода данных из таб­лиц или запросов, связанных с отношением «один-ко-многим». Например, таблица «Поставщики» и таблица «Товары» связаны отно­шением «один-ко-многим».

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

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

– Главная форма базируется на таблице с ключом, а подчиненная форма базируется на таблице, содержащей поле с тем же именем, что и ключевое поле, и с тем же или совместимым типом данных. Например, если ключевое поле главной формы имеет тип «Счетчик», а в свойстве Размер поля задан размер длинное целое, то соответствующее поле в подчиненной форме должно иметь тип Числовой и указанный в свойств.

Размер поля размер длинное целое. Если выбран запрос или запросы, то удовлетворять этим условиям должны базовые таблицы для запроса или запросов.

Примечание:

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

10.Б. Порядок выполнения работы:

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

1. Загрузите Microsoft Access, откройте базу данных «Продажи». Переключитесь на вкладку Формы.

2. Создайте несколько составных форм. Для этого откройте Схему данных для выбора таблиц, имеющих связь один-ко-многим.

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

2.1. Щелкните кнопку Создать. В окне диалога «Новая форма» выберите Мастер форм. Таблицу на этом этапе можно не указывать, нажмите кнопку Далее.

2.2. В следующем диалоговом окне, выберите из списка подчиненную таблицу, например «Заказы».

2.3. Выберите поля таблицы для проектируемой формы.

2.4. В окне диалога Создание формы выберите из списка главную таблицу, например «Покупатели» и поместите в список поля, содержа­щие нужную информацию о покупателях, щелкните кнопку Далее.

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

2.6. Выберите внешний вид, Стиль, последовательно нажимая кнопку Далее, закончите предварительное составление формы. Присвойте имена составной форме. Щелкните кнопку Готово.

2.7. Изменение размера полей. В области данных главной формы находятся поля из первой таблицы. Еще раз обратите внимание на стро­ки области данных. Каждая из них содержит два элемента: слева — наименование поля (тип элемента Label), справа — содержание поля базы данных (тип элемента Text Box). Элементы, предназначенные для размещения содержимого полей, имеют длину, определенную размером соответствующих полей в таблице (см. опцию Ширина, которая отоб­ражается в окне Свойства при маркированном элементе). Поле наименований содержит либо надпись (характеристика Надпись поля), которая была определена при проектировании таблицы, либо (если надпись не была задана) имя поля. Прежде чем приступить к изменению проекта формы, следует немного увеличить его ширину и высоту. Ориентироваться следует по координатной линейке, расположенной на верхнем краю окна. Выполните щелчок на вертикальной раздели­тельной линии справа от элементов области данных. Если у вас неболь­шое окно, то, чтобы увидеть разделительную линию, необходимо переместить его немного вправо с помощью горизонтальной линейки прокрутки, расположенной на нижнем краю экрана. После позицио­нирования курсора мыши на правом краю области данных он приобретет вид двунаправленной стрелки. Перетащите ограничительную линию несколько вправо и отпустите кнопку манипулятора. То же самое проделайте, расширяя область данных формы вниз.

2.8. Перенос полей. Для начала перетащим подчиненную форму вниз с таким расчетом, чтобы в освободившемся промежутке помес­тились поля главной формы, не вместившиеся в первый столбец. Мар­кируйте подчиненную форму и поместите курсор мыши на край этой формы, чтобы он приобрел вид ладони. Теперь, удерживая нажатой кнопку мыши, перетащите подчиненную форму в нижнюю часть области данных. Таким же способом следует переместить поля главной формы, не вошедшие в первую колонку, чтобы все поля с их надписями были построены в одну колонку (столбец). Теперь можно расположить эти поля более компактно. Маркируйте какое-либо поле, выполнив на нем щелчок (именно на содержимом, а не на наименовании) и не отпускайте левую кнопку манипулятора. Курсор мыши приобретет вид раскрытой ладони. На окаймляющей поле рамке появятся размерные манипуляторы (маленькие черные прямоугольники), а в левом углу рамки – большой черный квадрат (манипулятор перемещения). Теперь при нажатой кнопке мыши перетащите составное поле (надпись и содержимое) на первую строку формы, а затем отпустите кнопку. Поле будет размещено на новом месте. В результате щелчка вне поля маркирование отменяется.

Примечание:

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

3. Создайте в режиме мастера Составную иерархическую форму для связанных таблиц. При определении типа данных следует выбрать оп­цию Связанные формы.

4. Выйдите из Access.

Контрольные вопросы

1. Что такое составная форма?

2. Как маркировать поле?

3. Что такое составное поле?

4. Как изменяется размер поля?

5. Что такое дочерняя форма?

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