Подчиненные таблицы в access
Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»)
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
При работе с реляционными данными (т. е. связанными данными, которые хранятся в разных таблицах) нередко требуется просматривать несколько таблиц или запросов в одной форме. Например, может потребоваться одновременно просмотреть данные клиента из одной таблицы и сведения о его заказах из другой. Подчиненные формы — удобный инструмент для подобных задач, и в Access их можно быстро создать несколькими способами.
В этой статье
Сведения о подчиненных формах
Подчиненной называют форму, вставленную в другую форму. Главная форма называется основной, а форма, вложенная в нее, — подчиненной. Комбинацию формы и подчиненной формы иногда также называют иерархической формой, сочетанием основной формы и формы подробностей или комбинацией родительской и дочерней форм.
Подчиненные формы особенно удобны для отображения данных из таблиц или запросов с отношением «один-ко-многим». Отношение «один-ко-многим» представляет собой связь между двумя таблицами, при которой значение первичного ключа каждой записи в главной таблице соответствует значению в соответствующем поле или полях нескольких записей в связанной таблице. Например, можно создать форму, в которой отображаются сведения о сотрудниках и которая содержит подчиненную форму с заказами каждого сотрудника. Данные в таблице «Сотрудники» являются в отношении стороной «один». Данные в таблице «Заказы» являются в отношении стороной «многие» — для каждого сотрудника может быть несколько заказов.
1. В основной форме отображаются данные на стороне отношения «один».
2. В подчиненной форме выводятся данные на стороне отношения «многие».
Основная и подчиненная формы взаимодействуют таким образом, что в подчиненной выводятся только те записи, которые связаны с текущей записью в основной. Например, если в основной форме отображаются данные Ольги Зуевой, то в подчиненной отображаются только ее заказы. Если связь между основной и подчиненной формами была разорвана, то в подчиненной форме будут отображаться заказы всех сотрудников, а не только Ольги.
В таблице ниже описаны некоторые термины, связанные с подчиненными формами. Access будет обрабатывать большинство данных, если вы используете процедуры, описанные в этой статье, но полезно знать, что происходит в фоновом режиме, если вам необходимо внести изменения позже.
Главные и подчиненные таблицы
Типы отношений
Любая база данных состоит из таблиц, которые связаны между собой определенными зависимостями (см. рис.11 из лабораторной работы №1), или как еще их называют отношениями.
Отношения – это связи между таблицами.
Таблица 1. Типы отношений
Главные и подчиненные таблицы
Пусть имеются отношение между двумя таблицами. Одна из таблиц будет являться главной (родительской), а вторая подчиненной (дочерней или связанной).
При отношениях «ОДИН-КО-МНОГИМ» или «МНОГИЕ-К-ОДНОМУ» таблица с отношением «ОДИН» всегда будет главной. Поле, по которому происходит связь в подчиненной таблицей, называется внешним ключом. Для связи «ОДИН-К-ОДНОМУ» главной считается та таблица, от которой вы начали проводить связь (рис.1).
Рисунок 1. Главные и подчиненные таблицы
Установление связей между таблицами
Связь устанавливается между двумя общими полями из двух таблиц. Связываемые поля должны иметь одинаковый тип и формат данных, за исключением случая, когда поле первичного ключа является полем типа Счетчик. Поле счетчика связывается с числовым полем, если значения свойства Размер поля обоих полей совпадают (рис.2).
Рисунок 2. Пример связи между таблицами «Группа авто» и «Производители авто»
Рисунок 3. Пример связанных таблиц с разными именами полей
При создании связи между таблицами связываемые поля могут иметь разные имена,например, как в случае двух таблиц «Авто страховые копании» и «Участники ДТП» (рис.3). Для установления связи между такими таблицами необходимо изменить тип у поля из подчиненной таблицы, в нашем случае, у поля «НазванКомпан» в таблице «Участники ДТП» с Текстового на Числовое, так как связываемые поля должны иметь одинаковый тип данных, за исключением случая, когда поле первичного ключа является полем типа Счетчик. После чего в свойствах Подстановки у поля «НазванКомпан» в подчиненной таблице «Участники ДТП» ввести данные как показано на рисунке 4.
Рисунок 4. Пример уточнения свойств Подстановки для поля «НазванКомпан» из подчиненной таблицы «Участники ДТП»
Аналогично создается связь между таблицами «Авто участников ДТП» и «Производители авто» (см. рис.5).
Рисунок 5. Примеры связанных таблиц с разными именами полей
Для создания связей между таблицами MS Access имеется специальное диалоговое окно, которое называется «Схема данных».
Создание связей между таблицами:
1 ЭТАП. Добавление таблиц:
Сервис → Схема данных … →в окне «Добавление таблицы» выделяем имена таблиц, добавляемых в схему данных→
кнопка на Панели инструментов Базы данных
2 ЭТАП. Создание (изменение связей):
зажимаем л.к.м. ключевое поле в главной таблице → перетаскиваем курсор на аналогичное поле в подчиненной таблице, после чего кнопку мыши отпускаем
Связи → Изменить связи
п.к.м.по связи→ Изменить связи
После установки всех связей между таблицами в нашей БД в окне «Схема данных» должны установиться связи, как это показано на рисунке 6.
Рисунок 6. Схема БД «Общая картотека ДТП по г. Чита»
Ввод данных и работа с записями в таблицах
До сих пор рассматривали вопросы, связанные с созданием таблиц, определением и изменением их структуры, созданием связей между таблицами. Теперь перейдем к основным возможностям, которые предоставляет MS Access при работе с записями в таблице.
Таблица 2. Работа с записями
В таблицы можно вводить не только числовые и текстовые данные, но графические.
Вставка рисунков в поле данных таблицы:
п.к.м. по рисунку, который необходимо вставить в поле данных таблицы → Открыть с помощью → → выделяем нужную часть рисунка и копируем ее → переходим в БД в режим таблицы → помещаем курсор мыши в поле, куда необходимо поместить рисунок → Правка → Специальная вставка → выбираем тип Picture (Рисунок)
Работа с подчиненными таблицами
В MS Access есть возможность отображения нескольких связанных таблиц в окне главной таблицы, что упрощает процесс ввода данных таблицы. Рассмотрим возможности отображения на примере таблиц «Авто страховые компании», «Участники ДТП» и «Авто участников ДТП» созданной БД (см. рис.7).
Рисунок 7. Пример трех связанных таблиц
Рисунок 8. Пример трех связанных таблиц в режиме Таблица
На рисунке 7 видно, что таблица «Авто страховые компании» имеет подчиненную таблицу «Участники ДТП». В данном случае между областью выделения и первым столбцом таблицы (рис.8) существует узкий столбец, в котором для каждой записи отображается значок плюс (+). Если щелкнуть на нем левой кнопкой мыши, откроется часть подчиненной таблицы, содержащая только те записи, которые связаны с записью в главной таблице. Значок плюс при этом меняется на минус (–).
Если таблица, открытая в режиме Таблицы, не имеет подчиненных таблиц, то столбец со знаками плюс и минус отсутствует (см. рис.9).
Рисунок 9. Пример таблицы в режиме Таблицы, которая не имеет подчиненной таблицы
Не нашли, что искали? Воспользуйтесь поиском:
Добавление подтаблицы
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Если в двух таблицах в Access есть один или несколько полей, вы можете внедрить таблицу в одну из них в другой. Внедренная таблица, называемая подтаблицей, полезна, если вы хотите просмотреть и изменить связанные или объединенные данные в таблице или запрос.
В этой статье
Общие сведения о подтаблицах
Подтаблица полезна, если вы хотите просмотреть информацию из нескольких источников данных в одном режиме таблицы. Например, в образце базы данных «Борей» в таблице «заказы» есть отношение «один-ко-многим» с таблицей «сведения о заказах».
Если таблица сведения о заказах добавлена как подтаблица в таблице «заказы», вы можете просматривать и редактировать такие данные, как продукты, включенные в определенный заказ (каждая строка), открыв подтаблицу для этого заказа.
Если вы добавите в таблицы подтаблицы, ограничьте использование этих подтаблиц для просмотра и изменения важных бизнес-данных. Если вы хотите изменить данные в таблице, мы рекомендуем использовать формы для редактирования данных вместо подтаблиц, так как ошибки при вводе данных могут возникать в режиме таблицы, если пользователь не прокручивается до нужной ячейки. Также обратите внимание на то, что добавление подтаблицы в большую таблицу может негативно сказаться на производительности таблицы.
Microsoft Access автоматически создает подтаблицу при создании таблицы, которая соответствует одному из указанных ниже условий.
Таблица находится в отношение «один-к-одному».
Таблица — это сторона «один» отношения «один-ко-многим», в которой свойство «SubdatasheetName» таблицы имеет значение «Авто».
Связь определяется с помощью соответствующих полей первичный ключ и внешний ключ в связанных таблицах.
Кроме того, можно добавить подтаблицу в любую таблицу, запрос или форма в базе данных. В режиме таблицы в каждый момент времени форма может отображать только одну подтаблицу.
Открытие и закрытие подтаблицы
Чтобы определить, есть ли в таблице, запросе или форме подтаблица, откройте объект в режиме таблицы. Если индикатор развертывания (+ знак) присутствует, таблица, запрос или форма содержат подтаблицу. Когда подтаблица открыта, индикатор превращается в символ «a». Подтаблицы могут быть вложены в основную подтаблицу на 8 уровнях.
Чтобы открыть подтаблицу, щелкните знак «плюс» рядом со значением, для которого требуется просмотреть записи.
Чтобы закрыть подтаблицу, щелкните знак «минус».
Совет: Чтобы развернуть или свернуть все подтаблицы в таблице, на вкладке Главная в группе записи нажмите кнопку Дополнительно. Затем выберите подтаблицуи выберите нужный параметр.
Кроме того, можно удалить или скрыть подтаблицу. Сведения об удалении подтаблицы можно найти в статье Удаление подтаблицы.
Совет: Чтобы скрыть подтаблицу, откройте таблицу в режиме конструктора, а затем на вкладке конструктор в группе Показать или скрыть выберите пункт Страница свойств. Найдите в окне страницы свойств строку Имя подтаблицы , измените ее на [нет], а затем сохраните изменения.
Добавление подтаблицы
В режиме таблицы откройте таблицу или запрос, в который вы хотите добавить подтаблицу.
На вкладке Главная в группе записи нажмите кнопку Дополнительно, наведите указатель мыши на пункт Подтаблица и выберите пункт подтаблица.
В диалоговом окне Вставка подтаблицы выберите вкладку (таблицы, запросыили и то, и другое), соответствующие типу объекта, который вы хотите вставить как подтаблицу.
В поле связать ДочернИе поля выберите поле, которое вы хотите использовать в качестве внешний ключ или совпадающего поля, которое предоставит данные для подтаблицы.
В поле Основные поля выберите поле, которое вы хотите использовать в качестве первичный ключ или совпадающего поля основной таблицы или запроса, а затем нажмите кнопку ОК.
Например, если вы хотите создать подтаблицу для просмотра связанных заказов для каждой записи клиента в таблице «клиенты», выберите таблицу «заказы», в поле «доЧерний список полей » выберите идентификатор заказчика, а затем в поле Основные поля выберите Идентификатор.
Примечание: Значения в полях » ссылка ДочернИй элемент » и » Образец ссылки » создают объединение для указанных полей.
Нажмите кнопку OK, чтобы сохранить изменения.
Чтобы отобразить подтаблицу, добавленную в таблицу, запрос или форму, щелкните знак +.
Примечание: Дочернее поле (внешний ключ) не отображается в качестве столбца в подтаблице. При добавлении новой записи в подтаблицу Access автоматически вставляет значение первичного ключа выбранной базовой таблицы.
Тема: Создание подчиненных форм в СУБД 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
© Обучение в интернет, .
Обратная связь