Подчиненная форма access
Добавление подчиненной формы в главную форму
Подчиненная форма является элементом управления и, как и все остальные элементы, может быть добавлена в главную форму с помощью Мастера подчиненных форм. При этом ее можно создать заранее, и тогда мастеру нужно будет только указать имя добавляемой формы. Если подчиненная форма еще не создана, мастер поможет ее создать.
В качестве примера добавим в форму «Поставщики» (Suppliers) подчиненную форму, которая будет содержать список товаров текущего-поставщика (в исходной версии базы данных «Борей» товары поставщика отображаются в отдельной связанной форме при нажатии кнопки Просмотр товаров (Review Products)):
- Откройте форму «Поставщики» в режиме Конструктора и отобразите на экране панель элементов, если ее не видно.
- При нажатой кнопке Мастера (Control Wizards) перетащите с панели элементов в область данных формы элемент управления Подчиненная форма/отчет (Subform/ Subreport), поместив ее под всеми остальными элементами. Перед этим можно увеличить высоту области данных, но это необязательно, т. к. она увеличится автоматически после вставки нового элемента.
- В первом диалоговом окне мастера выберите переключатель Имеющиеся таблицы и запросы (Use existing Tables and Queries) и нажмите кнопку Далее (Next).
- Во втором диалоговом окне Мастера подчиненных форм в раскрывающемся списке Таблицы и запросы (Tables/Queries) выберите таблицу «Товары» (Products). В списке Доступные поля (Available Fields) выберите поля для включения в форму (рис. 9.35) и нажмите кнопку Далее (Next).
- В третьем диалоговом окне нужно определить поля, по которым связываются главная и подчиненная формы (рис. 9.36). Можно выбрать их из списка или задать самостоятельно. Так как таблицы «Поставщики» (Suppliers) и «Товары» (Products) связаны, в списке отображается нужная связь. Выберите ее и нажмите кнопку Далее (Next).
- В последнем диалоговом окне нужно задать имя подчиненной формы. По умолчанию предлагается имя «подчиненная форма Товары» (Products subform). Можно оставить-это имя и нажать кнопку Готово.
Рис. 9.35. Второе диалоговое окно Мастера подчиненных форм
Рис. 9.36. Третье диалоговое окно Мастера подчиненных форм
Результат работы мастера представлен на рис. 9.37.
Мастер подчиненных форм удобен тогда, когда подчиненная форма еще не создана. Если подчиненная форма уже существует, можно просто разместить рядом окно базы данных с раскрытой страницей Формы (Forms) и главную форму, открытую в режиме Конструктора и просто перетащить мышью нужную форму из окна базы данных в главную форму. При этом главная становится подчиненной формой и автоматически устанавливается связь между формами.
Рис. 9.37. Подчиненная форма «Товары» внутри формы «Поставщики»
Создание форм с подчиненной формой
Формы с подчиненной разрешают редактировать данные или из двух связанных таблиц, или из таблицы и запроса, которые связаны типом связей один-ко-многим. Главная форма в таком случае показывает данные из одной записи, а подчиненная из нескольких записей, которые связаны с записью главной формы. Подчиненные формы должны быть типа ленточная или таблица. В таких формах часто создают вычисляемые поля, в которых вычисляют итоговые величины по данным из записей подчиненной формы.
Например, создадим форму, которая для каждого читателя выводит список книг, которые у него на руках, с указанием автора книги, названия книги, даты выдачи, даты возврата и поля Пеня, которое создано и вычисляется в запросе Список1. Пеня начисляется в размере одного процента от стоимости книги за каждый просроченный день. Подсчитаем также общую сумму пени для каждого читателя. Форма будет иметь подчиненную форму со списком книг читателя. Данные в подчиненную форму будут браться из запроса Список1, который уже создан в предшествующем пункте.
Начальный макет формы создадим с помощью Мастера форм, а потом улучшим его с помощью Конструктора.
Выполните такие операции для создания формы мастером форм:
1) В окне базы данных выберите вкладку «Формы» и щелкните на кнопке Создать.
2) В окне Новая форма в списке: «Выберите в качестве источника данных таблицу или запрос» раскройте список таблиц и выберите таблицу Читатели. Потом в другом поле выберите Мастер форм и щелкните на кнопке ОК.
3) Появилось окно Создание форм. Из списка Доступные поля перенесите в список Выбранные поля поля NB, Фамилия, Кафедра и Телефон. Потом в раскрывающемся списке, расположенном выше, раскройте список таблиц и запросов, выберите запрос Список1. Его поля появятся в списке Доступные поля, перенесите в список Выбранные поля все поля запроса.
4) В следующем окне необходимо выбрать тип изображения данных. Выберите «по Читатели», так как главной формой будет форма, которая показывает сведения о читателях. Отметьте переключатель Подчиненные формы, чтобы другие данные были вставлены в подчиненную форму, и щелкните на кнопке Далее.
5) В следующем окне выберите вид подчиненной формы. Так как нам удобнее всего было бы видеть данные о книгах, которые читаются, представленными в виде таблицы, отметьте переключатель «ленточный» и щелкните на кнопке Далее.
6) Выберите стиль для главной формы. Стиль показывается в окне выбора сразу же, как только вы отметите один из них. Щелкните на кнопке Далее.
7) В следующем окне необходимо задать имена форм — главной и подчиненной. Access создал две формы, связанные одна с одной. Но вы можете корректировать их в режиме конструктора независимо одну от другой, а также пользоваться подчиненной формой не зависимо от главной. Дайте главной форме имя Читатели, а подчиненной – Список1. Щелкните на кнопке Готово и вы увидите на экране созданную форму.
На следующем шаге улучшим созданную форму с помощью Конструктора форм.
Добавим теперь в форму Список1 поле, в котором вычисляется общая сумма пени для каждого читателя. Пример такой формы в режиме конструктора приведен на рисунке 25, Конструктором форм добавлено поле “Всего пени”, которое вычисляется, и расположено в области “Примечание формы”.
Рисунок 25. Пример формы Список1 в режиме Конструктора форм
Далее идет подробное описание перечисленных действий.
Откройте подчиненную форму Список1 в режиме конструктора. В области Примечание формы создайте новое поле, которое вычисляется. Дайте ему имя “Всего пени”, и в окне Свойства для графы Данные задайте формулу: =Sum([Пеня]) , по которой будет вычисляться сумма пени. Измените текст перед этим полем, и ваша новая форма готова. Сохраните сделанные изменения и откройте форму для просмотра. Вы увидите в форме записи обо всех выданных книгах и внизу в поле общую сумму пени по всем читателям. Обратите внимание на измененные размеры полей, в которых выводится информация о
Рисунок 2.5. Пример формы Список1 в режиме Конструктора форм
книгах. Это сделано, чтобы авторы и название книги выводились в несколько строк, чтобы более полно видеть содержание поля.
Улучшим теперь вид формы Читатели. Для этого откройте форму Читатели в режиме конструктора и выполните такие действия:
а) растяните мышью область “Заголовок формы”, прибавьте элемент управления Надпись и напишите текст «Информация о читателях и выданных книгах» (рисунок 26). Измените шрифт и его размер для лучшего вида.
б) переместите поля Кафедра и Телефон вправо, чтобы освободить больше места для подчиненной формы.
в) растяните подчиненную форму на все свободное место.
Откройте форму для просмотра.
Внизу каждой формы расположен элемент управления, который называется “Кнопки перехода”. Они разрешают перемещаться по записям, создавать новые пустые записи и заполнять их. Этот элемент управления появляется в форме, если свойство формы “Кнопки перехода” имеет значение “Да”. Если изменить значения этого свойства на “Нет”, то этого элемента не будет в форме. В подчиненной форме этот элемент не нужен. Поэтому, снова откройте форму Список1 в режиме конструктора, откройте окно “Свойства” для формы, найдите свойство “Кнопки перехода”, измените на “Нет” значение.
Создание подчиненной формы
Часто бывает удобно на одной форме просматривать и исправлять записи, выбирая их из разных таблиц или запросов. Особенно часто такая необходимость возникает при работе со связанными таблицами, т.к. данные в них согласованы.
В Access для этой цели используются так называемые подчиненные формы. Подчиненная форма строится непосредственно на главной форме; в этой паре главная форма соответствует родительской таблице (идет со стороны «один» в связи «один-ко-многим»), подчиненная – дочерней (идет со стороны «многие» в связи «один-ко-многим»). В этом случае одной записи главной формы соответствует несколько записей подчиненной формы.
Создать форму с подчиненной можно несколькими способами. Рассмотрим некоторые из них.
1 способ. Главная и подчиненная формы строятся одновременно, на основе имеющихся таблиц и/или запросов. Возьмем для этой цели связанные таблицы «Отделы» (родительская) и «МоиСотрудники» (дочерняя). Шаги:
1. В окне БД на панели объектов выберите Формы, в меню — Создать и в первом открывшемся окне – Мастер форм, в качестве источника данных (в нижнем поле) – таблицу «Отделы» (рис. 89), нажмите ОК
2. Во втором окне выбираем нужные поля, например, Название Заведующий, Телефон. Далее, в этом же окне, в поле Таблицы и запросы выберите подчиненную таблицу «МоиСотрудники». Затем выберите ее поля, например, ФИО, Должность, Начислено (рис. 90). Нажмите Далее
3. В третьем окне подтвердите вид представления данных и флажок Подчиненные формы. Нажмите Далее.
4. В четвертом окне выберем вид подчиненной формы: Ленточный. Далее.
5. В последующих окнах выберите оформление и название главной формы. Нажмите Готово.
Результат – форма с подчиненной; для каждой записи главной формы подчиненная показывает все соответствующие записи из связанной (дочерней) таблицы.
6. Перейдите в режим конструктора, отформатируйте вид подчиненной формы так, чтобы выбранные поля были видны без использования полосы прокрутки.
2 способ.Предполагается, что формы для главной и подчиненной таблиц созданы заранее. Будем использовать ранее созданные формы для таблиц «МоиСотрудники» и «Отделы» (или их копии). Шаги:
1. Откройте форму для родительской (главной) таблицы «Отделы» в режиме конструктора. Расширьте область данных так, чтобы можно было разместить подчиненную форму.
2. Отключите кнопку Мастера на панели элементов. Нажмите на панели элементов кнопку Подчиненная форма/Отчет
. Нарисуйте левой мышью область, куда будет помещена подчиненная форма.
3. Выделите внедренный объект, войдите в его Свойства. На вкладке Данные в списке Объект-источник выберите таблицу «МоиСотрудники». Убедитесь, что связь (ключи Основные поля и Подчиненные поля) идет по полю Отдел. Закройте окно свойств.
4. Отформатируйте полученные объекты, замените надпись «Внедренный» на «Сотрудники».
3 способ. Форма строится аналогично предыдущему, второму способу, но шаг 2 выполняется при включенной (нажатой) кнопке Мастера. Далее двигаемся в соответствии с инструкциями мастера. Для примера можно построить форму, в которой главную роль играет форма «Отделы», а подчиненную – форма «Сотрудники» из БД «Борей» (эту форму нужно предварительно импортировать из этой БД).
4 способ. Самый простой. Предполагается наличие в БД двух готовых форм – будущих главной и подчиненной. Шаги:
1) Открыть главную форму в режиме конструктора. Расширить (мышью) ее область данных.
2) Перетащить мышью подчиненную форму из окна БД и бросить ее на главную в отведенное место.
Попробуйте этот способ с копией формы «Отделы».
Тема: Создание подчиненных форм в СУБД MS ACCESS
Цель занятия:
— изучение информационной технологии связывания таблиц и создания многотабличных подчиненных форм в СУБД.
Задание 1. Создать таблицы «Сектор» и «Клиенты фирмы» в режиме Конструктор.
Порядок работы
1. Запустите программу СУБД Microsoft Access и откройте свою созданную базу данных. На вкладке Создание в группеТаблицы выберите Конструктор таблиц. Создайте таблицы «Сектор» и «Клиенты фирмы». Свойства полей таблиц приведены соответственно на Рис. 48 и Рис. 49.
Рис. 48. Таблица «Сектор» в режиме Конструктор
Рис. 49. Таблица «Клиенты фирмы» в режиме Конструктор
Примечание. Для задания ключевого поля выделите поле (для таблицы «Сектор» поле Номер сектора) или группу полей (для таблицы «Клиенты фирмы» поля Номер сектора и Номер клиента) и в группе Сервис выберите Ключевое поле.
Задание 2. Создать схему данных.
Порядок работы
1. На вкладке Работа с базами данных в группеПоказать или скрыть выберите Схема данных. Далее в группе Связи выберите Отобразить таблицу.Добавление таблиц производится из окна Добавление таблицы. Для размещения таблицы в окне Схема данныхнадо выделить ее и нажать кнопку Добавить. Выделение нескольких таблиц производится при нажатой клавише [Ctrl]. Включив все нужные таблицы в схему данных («Сектор» и «Клиенты фирмы»), закройте окно Добавление таблицы.
2. Для установления связей между парой таблиц в окне Схема данныхнадо выделить уникальное ключевое поле, по которому устанавливается связь («Номер сектора»), и при нажатой кнопке мыши протащить курсор в соответствующее поле подчиненной таблицы.
3. В появившемся окне Изменение связейотметьте галочкой операции «Объединение целостности данных», «Каскадное обновление связанных полей» и «Каскадное удаление связанных полей» (Рис. 50), после чего нажмите кнопку Создать.
Рис. 50. Создание связей между таблицами
4. Конечный вид схемы таблиц приведен на Рис. 51.
Рис. 51. Схема связанных таблиц
Задание 3.Создать многотабличную форму для одновременного ввода данных в две таблицы.
Порядок работы
Краткая справка. Таблицы «Сектор» и «Клиенты фирмы» взаимосвязаны и имеют общее поле Номер сектора, поэтому для обеспечения удобного ввода данных создадим единую форму. В форме необходимо предусмотреть основную форму с реквизитами секторов и подчиненную форму с записями о клиентах. Основной форме присвойте имя «Сектор», подчиненной – «Список клиентов».
1. Форма создается с помощью Мастера форм (Создание/Формы/Другие формы/ Мастер форм). В окне Создание форм выбираем поля, которые войдут в проектируемый макет формы из основной таблицы «Сектор» (все поля) и затем из подчиненной таблицы «Клиенты фирмы» – все поля, кроме поля Номер сектора (Рис. 52).
Рис. 52. Выбор полей для основной и подчиненной форм
5. Очередное окно мастера отображает макет формы с перечнем полей в основной и в подчиненной части формы. В этом окне выделена таблица «Сектор» как источник записей основной части формы; таблица «Клиенты фирмы» как источник данных подчиненной формы. Для непосредственного включения подчиненной формы выберем вариант «Подчиненные формы» (Рис. 53).
Рис. 53. Макет подчиненной формы
3. В последующих диалоговых окнах мастера выберите внешний вид подчиненной формы – «ленточный» и любой стиль оформления. В последнем окне мастера вводятся имена основной формы («Сектор») и подчиненной формы («Список клиентов – подчиненная форма»), а также дальнейшие действия мастера – Открытие формы для просмотра и ввода данных. В результате будет получена форма, аналогичная изображенной на Рис. 54.
Рис. 54. Двухтабличная форма, созданная Мастером форм
Ключевое поле Номер сектора не входит в подчиненную форму, так как оно присутствует в основной части формы.
4. Доработка формы в режиме Конструктор заключается в изменении надписей и размещении полей как на Рис. 55, а также в создании кнопок для управления формой.
Рис. 55. Доработка формы в режиме Конструктор
Для того чтобы в форме можно было переходить к следующей и предыдущей записям таблицы «Сектор», создадим соответствующие кнопки управления в основной части формы.
Активизируем в группе Элементы управления кнопку Использовать мастера, а затем используем элемент «Кнопка». После переноса кнопки курсором мыши в нужное место формы и вычерчивания ее рамки запустится мастер Создание кнопок. В окне мастера нужно выбрать действие, которое выполняется при нажатии кнопки. В группе «Категория» выберем «Переходы по записям», в группе «Действия» выберем «Предыдущая запись». Аналогичные действия выполняются при встраивании кнопок «Следующая запись»и «Закрытие формы».
5. Редактирование подчиненной формы сводится к уточнению надписей полей-столбцов, а также размеров полей. Вид двухтабличной формы после редактирования в режиме формыприведен на Рис. 56.
Рис. 56. Отредактированный вид двухтабличной подчиненной формы
Задание 4.Используя двухтабличную форму ввести исходные данные в таблицы «Клиенты фирмы» и «Сектор». Данные для ввода приведены соответственно в таблицах 3 и 4.
Краткая справка. Ввод данных производится из обеих таблиц поочередно. Сначала введите данные в основную форму для сектора 100, затем в подчиненную форму введите данные для всех четырех клиентов этого же сектора 100. Далее аналогично введите данные для сектора 200 в основную и подчиненную формы и т.д.
Создание подчиненной формы в БД Access 2003
Создание подчиненной формы в БД Access 2003
В процессе создания приложения СУБД Access или базы данных решаются две основные проблемы: первая – создание структуры БД (таблиц и связей между ними), вторая – организация интерфейса пользователя для работы с БД. Основным средством организации интерфейса пользователя в приложениях СУБД Access являются формы, которые могут быть использованы для ввода, редактирования, вывода данных и других целей.
Если в одной форме требуется просматривать данные из нескольких таблиц или запросов, то для этой цели необходимо применить подчиненные формы. Подчиненная форма – это форма, вставленная в другую форму. Например, подчиненную форму можно использовать при просмотре информации о студентах факультета в группах на примере базы данных Training_students_VP.
Подчиненные формы целесообразно создавать для отображения данных из таблиц, имеющих отношение «один-ко-многим». На примере базы данных Training_students_VP рассмотрим технологию создания подчиненной формы, которая имеет две таблицы «Группы студентов» и «Студенты» связанные отношением «один-ко-многим» (Рис.1)
Если в окне базы данных Training_students_VP открыть таблицу «Группы студентов», то можно увидеть, что рядом с каждой записью таблицы помещен знак «+» (Рис. 2).
то означает, что у этой таблицы появилась подтаблица. Если щелкнуть на знаке «+», например, перед второй записью, то отобразится таблица «Студенты» и мы увидим, что в группе БФ-16б числится два студента (Ильин и Иванов). Теперь создадим подчиненную форму, содержащую эти две таблицы. Существует несколько способов создания подчиненных форм. Наиболее простой способ создания подчиненных форм – это создание Автоформы.
Для создания Автоформы необходимо на вкладке Таблицы в окне базы данных выделить таблицу «Группы студентов» и на панели инструментов щелкнуть кнопку «Новый объект: форма». В открывшемся меню надо выбрать команду Автоформа, в результате получим Главную форму «Группы студентов», в которую вставлена подчиненная таблица «Студенты». Затем сохраним форму как «Группы студентов_ПФ» и закроем ее. Скриншот Главной и подчиненной формы представлен на Рис. 3.
Преобразуем полученную форму. Для этого в режиме конструктора в Главной форме удалим поле КодГруппы, слово «Название» заменим на «Группа» и изменим некоторые размеры формы. После проведенных изменений, автоформа (под имененм Podch_gr_st_a) будет иметь вид, представленный на Рис. 4.
Создать подчиненную форму можно и с помощью Конструктора. Для этого в окне базы данных надо перейти на вкладку формы и щелкнуть на кнопке создать, а в качестве источника данных выбрать таблицу «Студенты» и щелкнуть ОК. В полученную пустую стандартную форму требуется перетащить поля: Фамилия, Имя, Отчество, пол, дата рождения и другие необходимые поля, а затем сохранить и закрыть данную форму.
Аналогично надо создать вторую (главную) форму «Группы студентов». В качестве источника данных выбрать «Группы студентов» и щелкнуть ОК. В полученную форму требуется перетащить поля: Название, Курс и Семестр. Кроме того, в полученной форме предусмотреть место для таблицы «Студенты», а затем сохранить данную форму.
Затем на форму «Группы студентов» открытую в режиме конструктора можно перетащить подчиненную форму «Студенты» из окна базы данных. В результате получим Главную форму «Группы студентов», в которую вставлена подчиненная таблица «Студенты».
Copyright
© Обучение в интернет, .
Обратная связь