Green-sell.info

Новые технологии
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Подчиненная форма access 2020

Добавление подчиненной формы в главную форму

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

В качестве примера добавим в форму «Поставщики» (Suppliers) подчиненную форму, которая будет содержать список товаров текущего-поставщика (в исходной версии базы данных «Борей» товары поставщика отображаются в отдельной связанной форме при нажатии кнопки Просмотр товаров (Review Products)):

  1. Откройте форму «Поставщики» в режиме Конструктора и отобразите на экране панель элементов, если ее не видно.
  2. При нажатой кнопке Мастера (Control Wizards) перетащите с панели элементов в область данных формы элемент управления Подчиненная форма/отчет (Subform/ Subreport), поместив ее под всеми остальными элементами. Перед этим можно увеличить высоту области данных, но это необязательно, т. к. она увеличится автоматически после вставки нового элемента.
  3. В первом диалоговом окне мастера выберите переключатель Имеющиеся таблицы и запросы (Use existing Tables and Queries) и нажмите кнопку Далее (Next).
  4. Во втором диалоговом окне Мастера подчиненных форм в раскрывающемся списке Таблицы и запросы (Tables/Queries) выберите таблицу «Товары» (Products). В списке Доступные поля (Available Fields) выберите поля для включения в форму (рис. 9.35) и нажмите кнопку Далее (Next).
  5. В третьем диалоговом окне нужно определить поля, по которым связываются главная и подчиненная формы (рис. 9.36). Можно выбрать их из списка или задать самостоятельно. Так как таблицы «Поставщики» (Suppliers) и «Товары» (Products) связаны, в списке отображается нужная связь. Выберите ее и нажмите кнопку Далее (Next).
  6. В последнем диалоговом окне нужно задать имя подчиненной формы. По умолчанию предлагается имя «подчиненная форма Товары» (Products subform). Можно оставить-это имя и нажать кнопку Готово.

Рис. 9.35. Второе диалоговое окно Мастера подчиненных форм

Рис. 9.36. Третье диалоговое окно Мастера подчиненных форм

Результат работы мастера представлен на рис. 9.37.

Мастер подчиненных форм удобен тогда, когда подчиненная форма еще не создана. Если подчиненная форма уже существует, можно просто разместить рядом окно базы данных с раскрытой страницей Формы (Forms) и главную форму, открытую в режиме Конструктора и просто перетащить мышью нужную форму из окна базы данных в главную форму. При этом главная становится подчиненной формой и автоматически устанавливается связь между формами.

Рис. 9.37. Подчиненная форма «Товары» внутри формы «Поставщики»

Тема: Создание подчиненных форм в СУБД MS ACCESS

Цель занятия:

— изучение информационной технологии связывания таблиц и создания многотабличных подчиненных форм в СУБД.

Задание 1. Создать таблицы «Сектор» и «Клиенты фирмы» в режиме Конструктор.

Порядок работы

1. Запустите программу СУБД Microsoft Access и откройте свою созданную базу данных. На вкладке Создание в группеТаблицы выберите Конструктор таблиц. Создайте таблицы «Сектор» и «Клиенты фирмы». Свойства полей таблиц приведены соответственно на Рис. 48 и Рис. 49.

Рис. 48. Таблица «Сектор» в режиме Конструктор

Рис. 49. Таблица «Клиенты фирмы» в режиме Конструктор

Примечание. Для задания ключевого поля выделите поле (для таблицы «Сектор» поле Номер сектора) или группу полей (для таблицы «Клиенты фирмы» поля Номер сектора и Номер клиен­та) и в группе Сервис выберите Ключевое поле.

Задание 2. Создать схему данных.

Порядок работы

1. На вкладке Работа с базами данных в группеПоказать или скрыть выберите Схема данных. Далее в группе Связи выберите Отобразить таблицу.Добавление таблиц производится из окна Добавление таблицы. Для размещения таблицы в окне Схема данныхнадо выделить ее и нажать кнопку Добавить. Выделение нескольких таблиц производится при нажатой клавише [Ctrl]. Включив все нужные таблицы в схему данных («Сектор» и «Клиенты фирмы»), закройте окно Добавление таблицы.

2. Для установления связей между парой таблиц в окне Схема данныхнадо выделить уникальное ключевое поле, по которому устанавливается связь («Номер сектора»), и при нажатой кнопке мыши протащить курсор в соответствующее поле подчиненной таблицы.

3. В появившемся окне Изменение связейотметьте галочкой операции «Объединение целостности данных», «Каскадное обновление связанных полей» и «Каскадное удаление связанных полей» (Рис. 50), после чего нажмите кнопку Создать.

Рис. 50. Создание связей между таблицами

4. Конечный вид схемы таблиц приведен на Рис. 51.

Рис. 51. Схема связанных таблиц

Задание 3.Создать многотабличную форму для одновременного ввода данных в две таблицы.

Порядок работы

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

Читать еще:  Как убрать все гиперссылки в powerpoint

1. Форма создается с помощью Мастера форм (Создание/Формы/Другие формы/ Мастер форм). В окне Создание форм выбираем поля, которые войдут в проектируемый макет формы из основной таблицы «Сектор» (все поля) и затем из подчиненной таблицы «Клиенты фирмы» – все поля, кроме поля Номер сектора (Рис. 52).

Рис. 52. Выбор полей для основной и подчиненной форм

5. Очередное окно мастера отображает макет формы с перечнем полей в основной и в подчиненной части формы. В этом окне выделена таблица «Сектор» как источник записей основной части формы; таблица «Клиенты фирмы» как источник данных подчиненной формы. Для непосредственного включения подчиненной формы выберем вариант «Подчиненные формы» (Рис. 53).

Рис. 53. Макет подчиненной формы

3. В последующих диалоговых окнах мастера выберите внешний вид подчиненной формы – «ленточный» и любой стиль оформления. В последнем окне мастера вводятся имена основной формы («Сектор») и подчиненной формы («Список клиентов – подчиненная форма»), а также дальнейшие действия мастера – Открытие формы для просмотра и ввода данных. В результате будет получена форма, аналогичная изображенной на Рис. 54.

Рис. 54. Двухтабличная форма, созданная Мастером форм

Ключевое поле Номер сектора не входит в подчиненную форму, так как оно присутствует в основной части формы.

4. Доработка формы в режиме Конструктор заключается в изменении надписей и размещении полей как на Рис. 55, а также в создании кнопок для управления формой.

Рис. 55. Доработка формы в режиме Конструктор

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

Активизируем в группе Элементы управления кнопку Использовать мастера, а затем используем элемент «Кнопка». После переноса кнопки курсором мыши в нужное место формы и вычерчивания ее рамки запустится мастер Создание кнопок. В окне мастера нужно выбрать действие, которое выполняется при нажатии кнопки. В группе «Категория» выберем «Переходы по записям», в группе «Действия» выберем «Предыдущая запись». Аналогичные действия выполняются при встраивании кнопок «Следующая запись»и «Закрытие формы».

5. Редактирование подчиненной формы сводится к уточнению надписей полей-столбцов, а также размеров полей. Вид двухтабличной формы после редактирования в режиме формыприведен на Рис. 56.

Рис. 56. Отредактированный вид двухтабличной подчиненной формы

Задание 4.Используя двухтабличную форму ввести исходные данные в таблицы «Клиенты фирмы» и «Сектор». Данные для ввода приведены соответственно в таблицах 3 и 4.

Краткая справка. Ввод данных производится из обеих таблиц поочередно. Сначала введите данные в основную форму для сектора 100, затем в подчиненную форму введите данные для всех четырех клиентов этого же сектора 100. Далее аналогично введите данные для сектора 200 в основную и подчиненную формы и т.д.

Добавление подчиненной формы

Форма может отображать информацию (поля) из нескольких таблиц или запросов. Но для этого необходимо, чтобы между этими объектами существовали отношения .

В Access отношение представляет собой связь между полями с совпадающими именами двух таблиц, которая позволяет установить соответствие между записями этих таблиц. Так, например, можно связать отношением таблицы Типы и Товары, воспользовавшись установленной связью между полями КодТипа.

Каждый тип включает несколько товаров, но каждый товар может относиться только к одному типу. Это пример наиболее распространенного типа отношений, называемого один-ко-многим (то есть, одной записи в таблице Типы соответствует несколько записей в таблице Товары ).

При создании форм и запросов Access распознает отношения между базисными объектами, но не всегда правильно. Поэтому лучше установить отношения между объектами вручную, тем более что это не представляет проблемы.

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

  1. Откройте базу данных GardenCo, расположенную в рабочей папке.
  2. На панели инструментов Access щелкните на кнопке Схема данных (Relationships), чтобы открыть диалоговое окно Схема данных (Relationships).
  3. Если диалоговое окно Добавление таблицы (Show Table) не отображается, щелкните на кнопке Отобразить таблицу (Show Table)на панели инструментов. В списке таблиц щелкните дважды на Типы и Товары. Закройте диалоговое окно Добавление таблицы (Show Table), чтобы перейти в окно Схема данных (Relationships), которое выглядит следующим образом.
Читать еще:  Access like в запросе

Другие типы отношений

Помимо отношения один-ко-многим, существуют отношения один-к-одному и многие-ко-многим, но они встречаются реже.

В отношении один-к-одному каждой записи в одной таблице соответствует только одна запись в другой таблице. Этот тип отношений применяется в том случае, если таблица содержит много полей. Для удобства ее можно разбить на две связанные таблицы, поместив редко используемые поля в отдельную таблицу.

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

На схеме данных появится линия, отображающая отношение один-ко-многим между полями КодТипа в обеих таблицах, как показано ниже.

Формы с подчиненной формой

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

Пример создания формы

Рассмотрим в качестве примера создание формы, выводящей для каждого читателя библиотеки списка книг, которые находятся у него на руках, с указанием авторов книг, названий, дат выдачи и возврата, а также с использованием поля Пеня, созданным и вычисляемом в запросе, который назовем Список1. Допустим пеню начисляют в размере 1% от стоимости книги за каждый просроченный день. Выполним расчет общей суммы пени для каждого читателя. Форма будет иметь подчиненную форму, содержащую список книг читателя. Данные в подчиненную форму будут поступать из запроса Список1, который был создан ранее.

Попробуй обратиться за помощью к преподавателям

Создание макета формы с помощью Мастера форм

Начальный макет формы создадим с помощью Мастера форм, а потом улучшим его с помощью Конструктора.

Создадим форму, выполняя следующие операции с помощью Мастера форм:

  1. В окне базы данных необходимо выбрать вкладку Формы и щелкнуть кнопку Создать.
  2. В окне Новая форма выберем в качестве источника данных в раскрывшемся списке таблиц таблицу Читатели. Затем в другом поле выберем Мастер форм и щелкнем на кнопке ОК.
  3. В появившемся окне Создание форм из списка Доступные поля перенесем в список Выбранные поля следующие поля: NB, Фамилия, Кафедра и Телефон. Далее в раскрывшемся выше списке (список таблиц и запросов) выберем запрос Список1, поля которого появятся в списке Доступные поля, и перенесем в список Выбранные поля все поля запроса.
  4. В следующем окне выбираем тип изображения данных. Необходимо выбрать по Читатели, поскольку главной формой станет форма, отображающая сведения о читателях. Отметим переключатель Подчиненные формы для того, чтобы остальные данные вставить в подчиненную форму, и затем щелкнем на кнопку Далее.
  5. В следующем окне нужно выбрать вид подчиненной формы. Поскольку удобно видеть все данные о читаемых книгах, представленными в виде таблицы, отметим переключатель ленточный и щелкнем на кнопку Далее.
  6. Затем необходимо выбрать стиль главной формы. Стиль отобразится в окне выбора сразу после того, как отметим его в списке. Щелкнем на кнопку Далее.
  7. В следующем окне зададим имена главной и подчиненной форм. Access создал 2 формы, которые связаны друг с другом. Но их можно корректировать, используя режим конструктора, независимо одну от другой, а также использовать подчиненную форму независимо от главной. Назовем главную форму Читатели, а подчиненную – Список1. Щелкнем на кнопку Готово, и на экране отобразится созданная форма.

Задай вопрос специалистам и получи
ответ уже через 15 минут!

Редактирование формы с помощью Конструктора форм

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

Читать еще:  Маска ввода номера телефона access

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

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

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

  • растянуть с помощью мыши область Заголовок формы, добавить элемент управления Надпись и ввести текст «Информация о читателях и выданных книгах» (рис. 3). Затем изменить начертание и размер шрифта для улучшения внешнего вида;
  • переместить поля Кафедра и Телефон вправо для освобождения места для подчиненной формы.
  • растянуть подчиненную форму на все свободное пространство.

Откроем форму в режиме просмотра.

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

Так и не нашли ответ
на свой вопрос?

Просто напиши с чем тебе
нужна помощь

Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»)

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

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

В этой статье

Сведения о подчиненных формах

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

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

1. В основной форме отображаются данные на стороне отношения «один».

2. В подчиненной форме выводятся данные на стороне отношения «многие».

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

В таблице ниже описаны некоторые термины, связанные с подчиненными формами. Access будет обрабатывать большинство данных, если вы используете процедуры, описанные в этой статье, но полезно знать, что происходит в фоновом режиме, если вам необходимо внести изменения позже.

Ссылка на основную публикацию
Adblock
detector