Semenalidery.com

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

Как создать подчиненную форму в access

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

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

В качестве примера добавим в форму «Поставщики» (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. Подчиненная форма «Товары» внутри формы «Поставщики»

Создание подчиненной формы в БД 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

© Обучение в интернет, .
Обратная связь

Тема: Создание подчиненных форм в СУБД 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. Двухтабличная форма, созданная Мастером форм

Читать еще:  Узнать ключ установленного офиса 2020

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

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

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

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

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

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

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

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

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

Как создать подчиненную форму в access

В процессе создания приложения СУБД Access или базы данных решаются две основные проблемы: первая – создание структуры БД (таблиц и связей между ними), вторая – организация интерфейса пользователя для работы с БД. Основным средством организации интерфейса пользователя в приложениях СУБД Access являются формы, которые могут быть использованы для ввода, редактирования, вывода данных и других целей.

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

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

Если в окне базы данных Training_students_VP открыть таблицу «Группы студентов», то можно увидеть, что рядом с каждой записью таблицы помещен знак «+» (Рис. 2).

Это означает, что у этой таблицы появилась подтаблица. Если щелкнуть на знаке «+», например, перед второй записью, то отобразится таблица «Студенты» и мы увидим, что в группе БФ-16б числится два студента (Ильин и Иванов). Теперь создадим подчиненную форму, содержащую эти две таблицы. Существует несколько способов создания подчиненных форм. Наиболее простой способ создания подчиненных форм – это создание Автоформы.

Для создания Автоформы необходимо на вкладке Таблицы в окне базы данных выделить таблицу «Группы студентов» и на панели инструментов щелкнуть кнопку «Новый объект: форма». В открывшемся меню надо выбрать команду Автоформа, в результате получим Главную форму «Группы студентов», в которую вставлена подчиненная таблица «Студенты». Затем сохраним форму как «Группы студентов_ПФ» и закроем ее. Скриншот Главной и подчиненной формы представлен на Рис. 3.

Преобразуем полученную форму. Для этого в режиме конструктора в Главной форме удалим поле КодГруппы, слово «Название» заменим на «Группа» и изменим некоторые размеры формы. После проведенных изменений, автоформа (под имененм Podch_gr_st_a) будет иметь вид, представленный на Рис. 4.

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

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

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

Читать еще:  Скачать офис 64 бит

Динамическое создание подчиненных форм

Серия подчиненных форм
Доброго времени суток. Суть вопроса — есть автоматически сгенерированная форма (обозначим ее.

Списки подчиненных форм
Доброго времени суток Нужна помощь по полям со списками в подчиненных формах Основная форма -.

Несколько подчиненных форм
Здравствуйте! Я совсем чайник, впервые делаю базу с несколькими подчиненными таблицами (точнее.

Проверка на заполнение подчинённых форм
Здравствуйте подскажите, пожалуйста, как можно — при записи нового фильма в форме "Просмотр и.

можешь не стараться, не получится

Добавлено через 2 минуты
Pandevich, в контрол субформа можно в качестве источника указывать запрос, он будет выглядеть как табличная субформа.

можешь не стараться, не получится

Добавлено через 2 минуты
Pandevich, в контрол субформа можно в качестве источника указывать запрос, он будет выглядеть как табличная субформа.

Ну так нужны всего-то две подформы, одна для заказов с водителями, другая — для заказов без водителей.

Плюс поле со списком водителей, по которому на заказы с водителями будет накладываться (если водитель выбран) или сниматься (если поле пусто) фильтр.

Плюс обрабатывать событие «после обновления» поля «водитель» в обеих формах: в форме заказов с водителями проверить, не стало ли поле водителя пустым (и если да — то обновить обе формы), а в форме заказов без водителя — не стало ли поле водителя заполненным (и если да — то обновить обе формы). ВСЕ.

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

texnik-san, Спасибо за потраченное на меня время. С MS Access я только начинаю работать, возможностей его в полной мере не знаю, книги только изучаю. Попробую еще раз объяснить, а то у меня плохо получается. База данных на предприятии, куда я устроился, ненормализована, поэтому в поле «Заказчик» записан и сам заказчик, и его адрес, и телефон. С этим еще надо еще разобраться, но на данный момент меня интересует следующее.
1.1) В течении дня диспетчер принимает заказы и заносит их в базу. Пустыми остаются поля, относящиеся к маршрутному листу: «Номер маршрутного листа», «Порядок заказа», «Водитель», «Номер машины».
1.2) В конце дня диспетчер эти поля должен заполнить, другими словами — сформировать маршрутные листы.
1.3) Один маршрутный лист — это один водитель+одна машина.
1.4) Количество маршрутных листов варьируется ото дня к дню.
1.4) В одном маршрутном листе может быть несколько заказов.
1.5) В разные дни один и тот же водитель может рулить разные машины. Отсюда необходимость каждый день определять, на какой машине какой водитель поедет выполнять заказы(забирать мусор, оставлять контейнеры и т.д. — все это заносится в базу данных при приеме заказа и отобразить это в маршрутном листе проблемы не составляет).
1.6) Заказы в маршрутном листе должны идти в определенном порядке, порядок, или иначе логистику, определяет диспетчер.
1.7) Машины могут ломаться, соответственно, их количество меняется. Позже объясню, к чему я это упомянул.

Теперь к тому, что я хочу получить. Идея со списком хорошая, спасибо большое.
2.1) Допустим, в левом списке заказы, в правом — заказы для маршрутного листа.
2.2) Диспетчер выбирает заказы в нужном ему порядке, они в этом порядке заносятся в правый список.
2.3) Впихнем рядом пару выпадающих списков «Номер машины», «Водитель».
2.4) Диспетчер выбрал заказы, они отображаются в правом списке, диспетчер выбрал номер машины, водителя, нажал кнопку «Сформировать маршрутный лист».

Вот тут интересующий меня момент и наступает. Можно ли сделать так, чтобы по нажатию на эту кнопку ниже, в этом же окне(форме), этот маршрутный лист отобразился(создался), со всем фаршем — такой-то водитель с такой-то машиной, заказы в том порядке, в каком задумано их выполнять? Для того, чтобы перед глазами были все маршрутные листы. Сформировали еще один лист, нажали кнопку — появился второй объект уже для этого листа. В пункте 1.7 я сказал, что количество машин может меняться, поэтому заранее накидать несколько полей по количеству машин выглядит плохой идеей — и форму загрузим ненужными объектами, и потом это выльется в проблемы. А если купят новую машину? Лезть добавлять новый объект для этой машины?
Так можно ли как-то динамически эти маршрутные листы отображать на форме или затея безнадежна изначально?

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector