Что такое составная форма
Составные формы
Другой подход позволяет забыть о способе проектирования переходов от формы к форме и вместо этого создать форму, содержащую все, что вам нужно. Это средство, называемое составной формой, использует элемент управления Подчиненная форма, с которым вы познакомились в главе 13.
В главе 13 рассказывалось о том, как элемент управления Подчиненная форма позволяет отображать связанные данные (такие как перечень товаров, входящих в текущую категорию товаров). Но применять подчиненную форму имеет смысл и для отображения нескольких несвязанных таблиц в одном месте. Просто оставьте пустыми свойства подчиненной формы Основные поля и Подчиненные поля — в этом случае подчиненная форма отображает все записи без фильтрации. На рис. 14.15 показан пример.
Существует метод, ускоряющий создание составной формы. Сначала выберите на ленте Создание > Формы > Конструктор форм для создания пустой новой формы. Найдите форму,
которую хотите использовать в подчиненной форме, и перетащите ее мышью из области переходов на рабочую поверхность вашей новой формы. Программа Access создаст элемент управления Подчиненная форма, в котором отображается эта форма. Можно также перетащить таблицу на вашу форму, в этом случае Access создаст подчиненную форму для таблицы (и попросит выбрать для нее имя).
Рис. 14.15. Эта составная форма — пульт управления «все в одном» для добавления и просмотра товаров и просмотра списка клиентов. Подготовленные и включенные в состав программы Access шаблоны часто используют составные формы для размещения нескольких связанных задач редактирования в одном месте
Если в области переходов применяется режим Таблицы и связанные представления, составная форма обычно отображается в группе Несвязанные объекты, поскольку кнопочная форма сама по себе не использует никакие таблицы. Вместо этого она содержит подчиненные формы, и эти формы используют различные таблицы, которые вы выводите на экран.
Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»)
При работе с реляционными данными (т. е. связанными данными, которые хранятся в разных таблицах) нередко требуется просматривать несколько таблиц или запросов в одной форме. Например, может потребоваться одновременно просмотреть данные клиента из одной таблицы и сведения о его заказах из другой. Подчиненные формы — удобный инструмент для подобных задач, и в Access их можно быстро создать несколькими способами.
В этой статье
Сведения о подчиненных формах
Подчиненной называют форму, вставленную в другую форму. Главная форма называется основной, а форма, вложенная в нее, — подчиненной. Комбинацию формы и подчиненной формы иногда также называют иерархической формой, сочетанием основной формы и формы подробностей или комбинацией родительской и дочерней форм.
Подчиненные формы особенно удобны для отображения данных из таблиц или запросов с отношением «один-ко-многим». Отношение «один-ко-многим» представляет собой связь между двумя таблицами, при которой значение первичного ключа каждой записи в главной таблице соответствует значению в соответствующем поле или полях нескольких записей в связанной таблице. Например, можно создать форму, в которой отображаются сведения о сотрудниках и которая содержит подчиненную форму с заказами каждого сотрудника. Данные в таблице «Сотрудники» являются в отношении стороной «один». Данные в таблице «Заказы» являются в отношении стороной «многие» — для каждого сотрудника может быть несколько заказов.
1. В основной форме отображаются данные на стороне отношения «один».
2. В подчиненной форме выводятся данные на стороне отношения «многие».
Основная и подчиненная формы взаимодействуют таким образом, что в подчиненной выводятся только те записи, которые связаны с текущей записью в основной. Например, если в основной форме отображаются данные Ольги Зуевой, то в подчиненной отображаются только ее заказы. Если связь между основной и подчиненной формами была разорвана, то в подчиненной форме будут отображаться заказы всех сотрудников, а не только Ольги.
В таблице ниже определены некоторые термины, связанные с подчиненной формы. Access будет обрабатывать большинство сведений, если вы используете процедуры, которые вы используете в этой статье, но полезно знать, какие изменения происходят в дальнейшем.
Элемент управления подчиненной формы
Элемент управления, который служит для внедрения одной формы в другую. Его можно рассматривать как «представление» другого объекта в базе данных, будь то другая форма, таблица или запрос. Элемент управления подчиненной формы обладает свойствами, которые позволяют связывать данные, отображаемые в нем, с данными в основной форме.
Свойство элемента управления подчиненной формы, определяющее, какой объект в нем отображается.
Простое отображение данных в строках и столбцах, как в электронной таблице. В элементе управления подчиненной формы отображается таблица, когда объектом-источником является таблица или запрос, либо форма, для свойства «Режим по умолчанию» которой задано значение «Режим таблицы». В этих случаях подчиненную форму иногда называют таблицей или подтаблицей.
Свойство «Подчиненные поля»
Свойство элемента управления подчиненной формы, которое задает поле или поля в подчиненной форме, которые будут связывать ее с основной.
Свойство «Основные поля»
Свойство элемента управления подчиненной формы, которое задает поле или поля в основной форме, которые будут связывать ее с подчиненной.
Перед тем, как выполнить описанные в этой статье действия, мы рекомендуем настроить связи между таблицами. Это позволит Access автоматически создать связи между основными и подчиненными формами. Чтобы просмотреть, добавить или изменить связи между таблицами в базе данных, на вкладке Работа с базами данных в группе Показать или скрыть нажмите кнопку Схема данных.
Когда элемент управления подчиненной формы имеет в качестве объекта-источника форму, он содержит поля, помещенные в нее и его можно просмотреть как одиночную форму, ленточную форму или таблицу. Одним из преимуществ создания подчиненной формы на основе формы является возможность добавления вычисляемых полей в подчиненную форму, например: [Количество] * [Цена].
Можно также вставить в форму таблицу или сводное представление путем создания элемента управления подчиненной формы, объектом-источником для которого служит таблица или запрос. Дополнительные сведения см. в разделе Добавление связанных данных в форму без создания подчиненной формы.
Создание или добавление подчиненной формы
В таблице ниже представлены рекомендации по выбору процедуры, которая лучше всего подходит для конкретной ситуации.
Нужно создать в приложении Access основную и подчиненную формы и связать их.
Нужно использовать существующую форму в качестве основной, но при этом создать в Access новую подчиненную форму и добавить ее в основную.
Нужно использовать существующую форму в качестве основной и добавить в нее одну или несколько существующих форм в качестве подчиненных.
Создание формы, содержащей подчиненную форму, с помощью мастера форм
Данная процедура позволяет создать новую комбинацию формы и подчиненной формы с помощью мастера форм. Это также самый быстрый способ начать работу, если еще не были созданы формы, которые планируется использовать в качестве основной или подчиненной формы.
На вкладке Создание в группе Формы нажмите кнопку Мастер форм.
На первой странице мастера в раскрывающемся списке Таблицы и запросы выберите таблицу или запрос. Например, чтобы создать форму «Сотрудники» для отображения в подчиненной форме списка заказов для каждого сотрудника, выберите пункт Таблица: Сотрудники (сторона «один» отношения «один-ко-многим»).
Примечание: Порядок выбора таблиц и запросов не имеет значения.
Дважды щелкните поля таблицы или запроса, которые нужно включить в форму.
На той же странице мастера в раскрывающемся списке Таблицы и запросы выберите другую таблицу или запрос. В данном примере мы выберем таблицу «Заказы» (сторона «многие» связи «один-ко-многим»).
Дважды щелкните поля таблицы или запроса, которые нужно включить в форму.
При нажатии кнопки «Далее» предполагается, что связи настроены правильно до начала работы мастера, мастер спросит, как вы хотите просмотреть данные? — по какой таблице или запросу. Выберите таблицу на стороне «один» связи «один-к-многим». В этом примере для создания формы «Сотрудники» будет щелкнуть «Сотрудники». Мастер отобразит небольшую схему формы. Страница должна иметь следующий рисунок:
Поле в нижней части изображения формы обозначает подчиненную форму.
Примечание: Если запрос Выберите способ представления данных не отображается, это означает, что приложению Access не удалось обнаружить связь «один-ко-многим» между выбранными таблицами или запросами. Мастер продолжит работу, но в форму не будет добавлена подчиненная форма. Если вы хотите сначала проверить связи между таблицами, нажмите кнопку Отмена.
Установите в нижней части страницы мастера переключатель Подчиненные формы и нажмите кнопку Далее.
На странице Выберите внешний вид подчиненной формы: выберите нужный вариант макета и нажмите кнопку Далее. В макетах обоих стилей данные подчиненной формы располагаются в виде строк и столбцов, но ленточный макет имеет больше возможностей настройки. В ленточной подчиненной форме можно добавлять цвет, изображения и другие элементы форматирования, однако табличный макет компактнее, как и табличное представление таблицы.
На следующей странице мастера выберите стиль форматирования для формы и нажмите кнопку Далее. Если на предыдущей странице вы выбрали значение Табличный, выбранное форматирование стиля также применяется к подчиненной форме.
На последней странице мастера введите заголовки форм. Имена автоматически присваиваются формам на основе введенных заголовков, а надписи подчиненных форм — на основе введенных заголовков подчиненных форм.
Укажите режим, в котором вы хотите открывать форму: режим формы (чтобы можно было просмотреть или ввести данные) или Конструктор (чтобы можно было изменить ее структуру). Затем нажмите кнопку Готово.
Access создаст две формы — основную форму, которая содержит подчиненную, и саму подчиненную форму.
Добавление одной или нескольких подчиненных форм в существующую форму с помощью мастера подчиненных форм
Используйте эту процедуру для добавления одной или нескольких подчиненных форм в существующую форму. Для каждой подчиненной формы можно создать новую форму или использовать существующую.
В области навигации щелкните существующую форму правой кнопкой мыши и выберите пункт Конструктор.
На вкладке Конструктор в группе Элементы управления щелкните стрелку вниз, чтобы открыть коллекцию Элементы управления, и убедитесь в том, что установлен флажок Использовать мастера.
На вкладке Конструктор в группе Элементы управления выберите элемент Подчиненная форма/отчет.
В форме щелкните место, куда нужно поместить подчиненную форму.
Следуйте указаниям мастера.
После нажатия кнопки Готово в форму будет добавлена подчиненная форма. Если для подчиненной формы создается новая форма, а не используется существующая, новый объект формы будет создан и добавлен в область навигации.
Создание подчиненной формы путем перетаскивания одной формы в другую
Выберите эту процедуру, если нужно использовать существующую форму в качестве основной и добавить в нее одну или несколько существующих форм в качестве подчиненных.
В области навигации щелкните правой кнопкой мыши форму, которую нужно использовать в качестве основной, и выберите пункт Конструктор.
Перетащите форму, которую вы хотите использовать в качестве подчиненной, из области навигации на основную форму.
Access добавит в основную форму элемент управления подчиненной формы, который будет связан с формой, добавленной путем перетаскивания из области навигации. Он также попытается связать подчиненную форму с основной на основе отношений, определенных в базе данных.
Повторите этот шаг, чтобы добавить другие подчиненные формы в основную.
Чтобы проверить, успешно ли создана связь, на вкладке Главная в группе Режимы нажмите кнопку Режим, выберите команду Режим формы и с помощью селектора записей основной формы просмотрите несколько записей. Если в подчиненной форме правильно отображаются данные для каждого сотрудника, это означает, что процедура завершена успешно.
Если проверка не работает, это означает, что программе Access не удалось создать связь подчиненной формы с основной и свойства Подчиненные поля и Основные поля элемента управления подчиненной формы остались пустыми. Задайте значения для этих свойств вручную, выполнив указанные ниже действия.
В области навигации щелкните основную форму правой кнопкой мыши и выберите пункт Конструктор.
Щелкните элемент управления подчиненной формы один раз, чтобы выделить его.
Если область задач «Окно свойств» не отображается, нажмите клавишу F4.
В окне свойств откройте вкладку Данные.
Нажмите кнопку «Построить» рядом с полем свойства «Ребенку полей».
Будет открыто диалоговое окно Связь с полями подчиненной формы.
В списках «Поля и потомки» выберите поля, с помощью которые вы хотите связать формы, и нажмите кнопку «ОК». Если вы не знаете, какие поля использовать, нажмите кнопку «Предложить», чтобы Access попытается определить связующие поля.
Совет: Если не отображается поле, которое требуется использовать для связывания форм, возможно, придется так отредактировать источник записей основной или подчиненной формы, чтобы данное поле в нем присутствовало. Например, если форма основана на запросе, следует убедиться, что связывающее поле присутствует в результатах запроса.
Сохраните основную форму и переключитесь в режим формы, а затем проверьте, правильно ли она работает.
Открытие подчиненной формы в новом окне в Конструкторе
Если вы хотите внести изменения в структуру подчиненной формы во время работы над основной формой в Конструкторе, вы можете открыть ее в отдельном окне:
Щелкните подчиненную форму, чтобы выбрать ее.
На вкладке Конструктор в группе Сервис нажмите кнопку Подчиненная форма в новом окне.
Изменение представления по умолчанию для подчиненной формы
При добавлении подчиненной формы в форму элемент управления подчиненной формы (или отчета) отображает подчиненную форму в соответствии с ее свойством Режим по умолчанию. Ниже перечислены значения, которые можно установить для этого свойства.
При создании подчиненной формы для этого свойства может быть установлено значение Ленточные формыили Простая форма. Однако если для свойства Режим по умолчанию подчиненной формы установить значение Режим таблицы, она будет отображаться как таблица в основной форме.
Чтобы задать значение свойства Режим по умолчанию подчиненной формы, выполните указанные ниже действия.
Закройте все открытые объекты.
В области навигации щелкните подчиненную форму правой кнопкой мыши и выберите пункт Конструктор.
Если окно свойств не отображается, нажмите клавишу F4.
Убедитесь в том, что в раскрывающемся списке в верхней части окна свойств выбран пункт Форма.
На вкладке Формат окна свойств задайте для свойства Режим по умолчанию нужное значение.
Примечание: Если нужный режим отсутствует в списке, убедитесь в том, что для свойства «Режим. » установлено значение Да. Например, если нужно выбрать вариант Режим таблицы, убедитесь, что для свойства Режим таблицы установлено значение Да.
Сохраните и закройте подчиненную форму, а затем откройте основную форму, чтобы проверить результаты.
Добавление связанных данных в форму без создания подчиненной формы
Не всегда требуется создавать отдельный объект формы для отображения связанных данных. Например, если вы работаете с формой в конструкторе или макете и перетаскивайте в нее таблицу или запрос из области навигации, в Access создается набор подчиненной формы или подчиненного с данными в этом объекте. Отображение данных определяется свойством «Режим по умолчанию» объекта. Обычно для этого используется режим таблицы, но для свойства «Режим по умолчанию» таблицы или запроса можно установить значение «Одна форма», «Разделенная форма» или «Лентообразная форма», что обеспечивает большую гибкость при отображке связанных данных в формах.
Примечание: Изменение свойства Режим по умолчанию для таблицы или запроса влияет на способ их отображения при открытии из области навигации или при просмотре в элементе управления подчиненной формы или отчета. Поскольку изменение параметров отображения таблицы иногда может привести к путанице при ее открытии из области навигации, в этой процедуре рекомендуется вместо таблицы использовать запрос.
Как сделать составную форму в access?
Существует метод, ускоряющий создание составной формы. Сначала выберите на ленте Создание (Create) > Формы > Конструктор форм (Form Design) для создания пустой новой формы.
Найдите форму, которую хотите использовать в подчиненной форме, и перетащите ее мышью из области переходов на рабочую поверхность вашей новой формы. Программа Access создаст элемент управления Подчиненная форма (Subform), в котором отображается эта форма. Можно также перетащить таблицу на вашу форму, в этом случае Access создаст подчиненную форму для таблицы (и попросит выбрать для нее имя).
Эта составная форма — пульт управления «все в одном» для добавления и просмотра товаров и просмотра списка клиентов. Подготовленные и включенные в состав программы Access шаблоны часто используют составные формы для размещения нескольких связанных задач редактирования в одном месте
Подчиненная форма является элементом управления и, как и все остальные элементы, может быть добавлена в главную форму с помощью Мастера подчиненных форм. При этом ее можно создать заранее, и тогда мастеру нужно будет только указать имя добавляемой формы. Если подчиненная форма еще не создана, мастер поможет ее создать.
В качестве примера добавим в форму «Поставщики» (Suppliers) подчиненную форму, которая будет содержать список товаров текущего-поставщика (в исходной версии базы данных «Борей» товары поставщика отображаются в отдельной связанной форме при нажатии кнопки Просмотр товаров (Review Products)):
Рис. 9.35. Второе диалоговое окно Мастера подчиненных форм
Рис. 9.36. Третье диалоговое окно Мастера подчиненных форм
Результат работы мастера представлен на рис. 9.37.
Мастер подчиненных форм удобен тогда, когда подчиненная форма еще не создана. Если подчиненная форма уже существует, можно просто разместить рядом окно базы данных с раскрытой страницей Формы (Forms) и главную форму, открытую в режиме Конструктора и просто перетащить мышью нужную форму из окна базы данных в главную форму. При этом главная становится подчиненной формой и автоматически устанавливается связь между формами.
Рис. 9.37. Подчиненная форма «Товары» внутри формы «Поставщики»
В этом уроке поговорим на тему «Создание разделенной формы в Access». Разделенная форма позволяет синхронно отображать данные одного источника в двух представлениях — в режиме формы и в режиме таблицы. В любой части разделенной формы можно производить изменение данных — добавление, обновление или удаление, которые тут же будут отображаться в другом представлении. При выделении поля в одной части формы выделяется то же поле в другой части.
Создайте однотабличную разделенную форму для работы с данными таблицы ТОВАР. Выберите таблицу ТОВАР в области навигации и выполните команду Разделенная форма (Split Form) на вкладке ленты Создание (Create) в группе Формы (Forms). Эта команда обеспечит автоматическое создание формы на основе только одной выбранной таблицы. Создание разделенной формы в Access отобразится в режиме макета.
Работа с разделенной формой дает преимущества обоих типов представления данных. Например, можно воспользоваться табличной частью формы, чтобы быстро найти запись о конкретном товаре, а затем просмотреть или изменить ее в другой части формы.
Создайте однотабличную разделенную форму для работы с данными таблицы ТОВАР. Выберите таблицу ТОВАР в области навигации и выполните команду Разделенная форма (Split Form) на вкладке ленты Создание (Create) в группе Формы (Forms). Эта команда обеспечит автоматическое создание формы на основе только одной выбранной таблицы. Созданная форма отобразится в режиме макета.
Работа с разделенной формой дает преимущества обоих типов представления данных. Например, можно воспользоваться табличной частью формы, чтобы быстро найти запись о конкретном товаре, а затем просмотреть или изменить ее в другой части формы.
Если в вашей базе данных существуют формы, основанные на одной таблице или запросе, совсем не обязательно создавать разделенную форму с тем же источником данных заново, достаточно изменить свойство этой формы Режим по умолчанию (Default View). В нашей базе данных ранее была создана форма ТОВАР для просмотра и изменения сведений о товарах. Откройте форму в режиме конструктора. Для этого выберите ее в области навигации, и в контекстном меню выполните команду Конструктор (Design View). На вкладке ленты Конструктор (Design) в группе Сервис (Tools) выполните команду Свойства страницы (Property Sheet). Измените на вкладке Макет (Format) значение свойства формы Режим по умолчанию (Default View) с Простая форма (Single Form) на Разделенная форма (Split Form).
Форма ТОВАР примет вид, представленный на рис. 5.13.
Расположение таблицы в верхней или нижней части окна разделенной формы определяется в свойстве формы Ориентация разделенной формы (Split Form Orientation). Свойство может принимать значения Таблица сверху (Datasheet on Top), Таблица снизу (Datasheet on Bottom), Таблица слева (Datasheet on Left) и Таблица справа (Datasheet on Right). Изменить значение этого свойства можно только в режиме конструктора.
Для закрепления темы «Создание разделенной формы в Access» смотрим видеоурок:
Создание подчиненных и составных форм
Подчиненной формой называют форму, вставленную в другую форму. Первичная форма называется главной формой, а форма внутри формы называется подчиненной формой. Комбинацию «форма/подчиненная форма» часто называют также иерархической формой или комбинацией «родительской» и «дочерней» форм. Подчиненные формы особенно удобны для вывода данных из таблиц или запросов, связанных с отношением «один-ко-многим».
Например, можно создать форму с подчиненной формой для вывода данных из таблиц «Категория» и «Шины». Данные в таблице «Категория» находятся на стороне «один», а данные в таблице «Шины» – на стороне «многие» отношения (рис.1).
При создании формы и подчиненной формы, основанных на таблицах, связанных отношением «один-ко-многим», главная форма представляет сторону «один» отношения, а подчиненная форма представляет сторону «многие». Главная форма синхронизируется с подчиненной формой таким образом, что в подчиненной форме выводятся только записи, связанные с записью в главной форме. Например, когда в главной форме будет отображаться категория шин «Летняя», то в подчиненной форме отобразятся только те шины, которые входят в данную категорию.
При использовании формы с подчиненной формой для ввода новых записей текущая запись в главной форме сохраняется при вводе данных в подчиненную форму. Это гарантирует, что записи из таблицы на стороне «многие» будут иметь связанную запись в таблице на стороне «один».
Для создания формы в окне базы данных требуется нажать кнопку Создание формы с помощью мастера(рис. 2).
Рис.2. Запуск мастера создания форм
В открывшемся первом диалоговом окне Создание форм (рис. 3) выбираются нужные таблицы из списков Таблицы и запросы, начиная с главной таблицы и Доступные поля каждой из таблиц, включаемые в форму.
В нашем примере, сначала выбирается таблица Категория и выбираются ее поля: Код_категории и Наименование(рис.3).
Рис.3. Выбор главной таблицы и ее полей.
А затем, Таблица шины и все ее поля за исключением поля Код_категории, поскольку оно уже включено в форму из главной таблицы Категория(рис. 4).
Рис.4.Выбор подчиненной таблицы и ее полей.
Если выбраны поля из таблиц, для которых не определена связь в схеме данных, то появится сообщение о невозможности создать форму. При этом мастер предлагает или изменить состав полей, или выводит схему данных для возможного определения нужных связей.
После выбора полей и нажатия кнопки Далее в окне Создание форм в поле Выберите вид представления данных надо выделить имя таблицы (Категория), которая является источником основной части формы (рис. 5).
Рис.5.Выбор вида представления данных
Переключатель, который расположен нижней правой части окна, должен быть включен в состоянии Подчиненные формы.
В следующем диалоговом окне предоставляется возможность выбрать вид ленточный или табличный (рис. 6) для подчиненной формы.
Рис.6.Выбор вида подчиненной формы.
Выбранный вид формы должен наилучшим образом соответствовать задачам, решаемым пользователем.
В следующем диалоговом окне мастера (рис. 7) предоставляется возможность выбрать стиль оформления, который определяет общий вид формы, отображение надписей и значений полей в форме.
Рис.7.Выбор стиля оформления.
Выбирая стиль оформления формы важно обратить внимание на четкость и читабельность выводимой на форму информации.
В последнем диалоговом окне можно изменить имена основной и подчиненной форм, если был выбран вариант с непосредственным включением подчиненной формы (рис.8).
Рис.8.Задание имен основной и подчиненной форм.
На рис. 9 приведена сложная форма, полученная в результате работы мастера.
Рис.9. Полученная таблица
Составная форма
Кроме непосредственного включения подчиненной формы в состав главной формы существует и другой вариант, когда в форму включается кнопка, вызывающей подчиненную форму. Иными словами, подчиненная форма сразу не выводится и для ее активации требуется нажать на специальную кнопку вывода подчиненной формы.
Создание Связанных формна первом этапени чем не отличается от создания Подчиненной формы, описанного выше. Однако уже на втором шаге в окне Создание форм требуется установить переключатель в состояние Связанные формы(рис. 10).
Рис.10.Выбор варианта Связанные формы
В дальнейшем работа с Мастеромни чем не отличается от описанной выше.
На рис.11 приведена форма, полученная в результате работы мастера.
В данном случае, при нажатии на кнопкуШины, раскрывается связанная с ней подчиненная форма (рис. 12)
Рис.12.Раскрытая подчиненная форма
Режим Конструктора
Разработку произвольной структуры формы и ее внешнего вида можно выполнить только в режиме Конструктора. В этом режиме можно изменить источник данных для формы, количество отображаемых полей, внешний вид формы и элементов управления, добавить или удалить элементы управления, настроить их свойства.
Чтобы создать форму в режиме Конструкторатребуется в окне Новая форма выделить соответствующий режим и нажать кнопку ОК.При этом откроется пустой Макет формы и Панель элементов, котораяпозволяет создавать элементы управления
Дата добавления: 2016-04-06 ; просмотров: 1680 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ