Как создать подчиненную форму в access
Как создать подчиненную форму в 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 в основную и подчиненную формы и т.д.
Данные таблицы «Сектор» (основная форма)
Номер сектора | Количество клиентов в группе | Средняя сумма заказов за год ( руб.) |
45 020 | ||
75 250 | ||
96 520 | ||
85 420 | ||
81 520 |
Данные таблицы «Клиенты фирмы» (подчиненная форма)
Номер сектора | Номер клиента | Наименование клиента | Дата заключения договора | Сумма заказа |
ОАО «Старт» | 53 200 | |||
ООО «Салют» | 28 300 | |||
ООО «Прогресс» | 47 950 | |||
ЗАО «Восток» | 57 640 | |||
ОАО «Барс» | 85 610 | |||
ООО «Вектор» | 75 930 | |||
ООО «Спутник» | 68 410 | |||
ЗАО «Ракс» | 103 540 | |||
ОАО «Пролог» | 88 760 | |||
ООО «Север» | 85 420 | |||
ЗАО «Норд» | 86 340 | |||
ООО «Восторг» | 77 940 |
После ввода данных закройте форму и в Области переходов выберите и откройте таблицу «Сектор». Обратите внимание, какой она имеет вид. Разверните данные подчиненной таблицы, нажатием на «+» (Рис. 57).
Рис. 57. Вид таблицы «Сектор» с данными подчиненной таблицы
Задание 5.Создать отчеты по таблице «Сектор» и «Клиенты фирмы».
Создание подчиненной формы
Часто бывает удобно на одной форме просматривать и исправлять записи, выбирая их из разных таблиц или запросов. Особенно часто такая необходимость возникает при работе со связанными таблицами, т.к. данные в них согласованы.
В Access для этой цели используются так называемые подчиненные формы. Подчиненная форма строится непосредственно на главной форме; в этой паре главная форма соответствует родительской таблице (идет со стороны «один» в связи «один-ко-многим»), подчиненная – дочерней (идет со стороны «многие» в связи «один-ко-многим»). В этом случае одной записи главной формы соответствует несколько записей подчиненной формы.
Создать форму с подчиненной можно несколькими способами. Рассмотрим некоторые из них.
1 способ. Главная и подчиненная формы строятся одновременно, на основе имеющихся таблиц и/или запросов. Возьмем для этой цели связанные таблицы «Отделы» (родительская) и «МоиСотрудники» (дочерняя). Шаги:
2. Во втором окне выбираем нужные поля, например, Название Заведующий, Телефон. Далее, в этом же окне, в поле Таблицы и запросы выберите подчиненную таблицу «МоиСотрудники». Затем выберите ее поля, например, ФИО, Должность, Начислено (рис. 90). Нажмите Далее
3. В третьем окне подтвердите вид представления данных и флажок Подчиненные формы. Нажмите Далее.
4. В четвертом окне выберем вид подчиненной формы: Ленточный. Далее.
5. В последующих окнах выберите оформление и название главной формы. Нажмите Готово.
Результат – форма с подчиненной; для каждой записи главной формы подчиненная показывает все соответствующие записи из связанной (дочерней) таблицы.
6. Перейдите в режим конструктора, отформатируйте вид подчиненной формы так, чтобы выбранные поля были видны без использования полосы прокрутки.
2 способ.Предполагается, что формы для главной и подчиненной таблиц созданы заранее. Будем использовать ранее созданные формы для таблиц «МоиСотрудники» и «Отделы» (или их копии). Шаги:
1. Откройте форму для родительской (главной) таблицы «Отделы» в режиме конструктора. Расширьте область данных так, чтобы можно было разместить подчиненную форму.
2. Отключите кнопку Мастера на панели элементов. Нажмите на панели элементов кнопку Подчиненная форма/Отчет
. Нарисуйте левой мышью область, куда будет помещена подчиненная форма.
3. Выделите внедренный объект, войдите в его Свойства. На вкладке Данные в списке Объект-источник выберите таблицу «МоиСотрудники». Убедитесь, что связь (ключи Основные поля и Подчиненные поля) идет по полю Отдел. Закройте окно свойств.
4. Отформатируйте полученные объекты, замените надпись «Внедренный» на «Сотрудники».
3 способ. Форма строится аналогично предыдущему, второму способу, но шаг 2 выполняется при включенной (нажатой) кнопке Мастера. Далее двигаемся в соответствии с инструкциями мастера. Для примера можно построить форму, в которой главную роль играет форма «Отделы», а подчиненную – форма «Сотрудники» из БД «Борей» (эту форму нужно предварительно импортировать из этой БД).
4 способ. Самый простой. Предполагается наличие в БД двух готовых форм – будущих главной и подчиненной. Шаги:
1) Открыть главную форму в режиме конструктора. Расширить (мышью) ее область данных.
2) Перетащить мышью подчиненную форму из окна БД и бросить ее на главную в отведенное место.
Попробуйте этот способ с копией формы «Отделы».
Формы с подчиненной формой
Вы будете перенаправлены на Автор24
Формы с подчиненными формами используются для редактирования данных либо из двух связанных таблиц, либо из таблицы и запроса, связанных по типу связи один-ко-многим. В главной форме в подобном случае будут отражаться данные из одной записи, а в подчиненной из нескольких записей, которые, в свою очередь, будут связаны с записью главной формы. Подчиненные формы имеют, как правило, ленточный тип или табличный. Такие формы часто используются для создания вычисляемых полей, предназначенных для вычисления итоговых величин по данным записей подчиненной формы.
Пример создания формы
Рассмотрим в качестве примера создание формы, выводящей для каждого читателя библиотеки списка книг, которые находятся у него на руках, с указанием авторов книг, названий, дат выдачи и возврата, а также с использованием поля Пеня, созданным и вычисляемом в запросе, который назовем Список1. Допустим пеню начисляют в размере 1% от стоимости книги за каждый просроченный день. Выполним расчет общей суммы пени для каждого читателя. Форма будет иметь подчиненную форму, содержащую список книг читателя. Данные в подчиненную форму будут поступать из запроса Список1, который был создан ранее.
Создание макета формы с помощью Мастера форм
Начальный макет формы создадим с помощью Мастера форм, а потом улучшим его с помощью Конструктора.
Создадим форму, выполняя следующие операции с помощью Мастера форм:
Готовые работы на аналогичную тему
Редактирование формы с помощью Конструктора форм
Следующим шагом станет улучшение созданной формы с помощью Конструктора форм. Затем необходимо добавить в форму Список1 поле, в котором будет вычисляться общая сумма пени для каждого читателя. Пример формы такого типа в режиме конструктора приведен на рисунке 1. В Конструкторе форм добавлено вычисляемое поле Всего пени, расположенное в области Примечание формы.
Далее необходимо выполнить следующие действия:
Открыть подчиненную форму Список1 в режиме конструктора. В области Примечание формы создадим новое вычисляемое поле и назовем его Всего пени. В окне Свойства для графы Данные зададим формулу для вычисления суммы пени (=Sum([Пеня])). Изменим текст перед этим полем. Новая форма готова. Сохраним внесенные изменения и откроем форму для просмотра. В форме отобразятся записи обо всех выданных книгах, а также в нижнем поле общая сумма пени по всем читателям. Отметим, что размеры полей, в которых выводится информация о книгах, изменены таким образом, чтобы авторы и название книги выводились в несколько строк для более полного отображения содержания поля.
Далее займемся улучшением внешнего вида формы Читатели. Для этого необходимо открыть форму Читатели в режиме конструктора и выполнить следующие действия:
Откроем форму в режиме просмотра.
Внизу каждой формы находится элемент управления Кнопки перехода, который позволяет перемещаться по записям, создавая новые пустые записи и заполняя их. Данный элемент управления появляется в форме в случае, когда свойство формы Кнопки перехода имеет значение Да. В случае же изменения значения этого свойства на Нет данный элемент отображаться в форме не будет. В подчиненной форме данный элемент использовать не обязательно. Поэтому, снова откроем форму Список1 в режиме конструктора, откроем окно Свойства для формы, найдем свойство Кнопки перехода и изменим его значение на Нет.
Нужны еще материалы по теме статьи?
Воспользуйся новым поиском!
Найди больше статей и в один клик создай свой список литературы по ГОСТу
Создание форм (форм) в Access 2016
Создание формы для вашей базы данных может сделать ввод данных более удобным. Когда вы создаете форму, вы можете спроектировать ее в соответствии с вашей базой данных.
В этом уроке вы узнаете, как создавать и изменять формы. Вы также узнаете, как использовать параметры формы, такие как элементы управления дизайном и свойства формы, чтобы убедиться, что форма работает именно так, как вы хотите.
В этом руководстве в статье будет использоваться образец базы данных. Если вы хотите отслеживать, вы можете загрузить образец файла базы данных Access 2016. Вам нужно будет установить Access 2016 на свой компьютер, чтобы открыть файл примера.
Как создать форму (форму)
Как создать форму
Access упрощает создание форм из любой таблицы в базе данных. Любая форма, которую вы создаете из таблицы, позволит вам просматривать данные, уже находящиеся в этой таблице, и добавлять новые данные. Создав форму, вы можете изменить ее, добавив дополнительные поля и элементы управления дизайном, такие как поля со списком.
1. На панели навигации выберите таблицу, которую вы хотите использовать для создания формы. Открывать доску не нужно.
2. Выберите вкладку «Создать», найдите группу «Формы» и щелкните команду «Форма».
3. Ваша форма будет создана и открыта в режиме макета.
4. Чтобы сохранить форму, нажмите кнопку «Сохранить» на панели быстрого доступа. При появлении запроса введите имя формы и нажмите кнопку ОК.
О подчиненной форме (subform)
Если вы создали форму из таблицы, содержимое которой связано с другой таблицей, ваша форма может включать подчиненные формы. Подчиненная форма — это форма данных, которая отображает связанный контент в табличном формате. Например, подчиненные формы, включенные в созданную вами форму «Клиенты», будут отображать связанные заказы клиентов.
Вам не нужно включать эту подчиненную форму, потому что вы можете использовать форму клиентов только для ввода и просмотра контактной информации. Если вы обнаружите, что подчиненная форма вам не нужна, вы можете легко ее удалить. Для этого просто щелкните по нему и нажмите клавишу Delete на клавиатуре.
Однако подформы часто бывают весьма полезными. В зависимости от содержимого и источника формы вы можете обнаружить, что подчиненная форма содержит полезную информацию, как в примере ниже. В форме «Заказы» подчиненная форма содержит название, количество и цену каждого элемента в заказе. Это вся полезная информация.
Добавьте в форму дополнительные поля
Когда вы используете команду «Форма» для существующей таблицы, все поля из таблицы включаются в форму. Однако, если вы позже добавите в таблицу дополнительные поля, эти поля не будут автоматически отображаться в существующих формах. В подобных ситуациях вы можете добавить в форму дополнительные поля.
Как добавить поле в форму
1. Выберите вкладку «Дизайн», затем найдите группу «Инструменты» справа от ленты.
2. Щелкните команду Добавить существующие поля.
3. Появится панель управления списком полей. 4. Дважды щелкните нужное поле (поля).
4. Поле будет добавлено.
Вы также можете использовать описанную выше процедуру для добавления полей в полностью пустую форму. Просто создайте форму, щелкнув команду «Пустая форма» на вкладке «Создать», затем выполните указанные выше действия, чтобы добавить нужные поля.
Как добавить поле из другой таблицы
Вы также можете добавить в форму поля из разных таблиц своей базы данных.
1. На панели управления «Список полей» нажмите «Показать все таблицы».
2. Щелкните знак плюса + рядом с таблицей, содержащей поле, которое вы хотите добавить, затем дважды щелкните нужное поле. Будут добавлены новые поля.
Добавить функции управления дизайном
Функции управления дизайном устанавливают ограничения на поля в форме. Это дает вам больший контроль над тем, как данные вводятся в вашу форму, тем самым помогая поддерживать целостность вашей базы данных.
Поле со списком
Поле со списком — это раскрывающийся список, который можно использовать в форме вместо поля. Поле со списком ограничивает информацию, которую пользователи могут вводить, заставляя их выбирать только те параметры, которые вы указали.
Полезное поле со списком для школ с ограниченным количеством действительных ответов. Например, вы можете использовать поля со списком, чтобы при вводе адреса люди вводили только допустимый штат в США или просто выбирали продукты, которые уже существуют в базе данных.
Как создать поле со списком
1. В представлении «Макет формы» выберите вкладку «Дизайн», затем найдите группу «Элементы управления».
2. Выберите команду Combo Box, которая выглядит как раскрывающийся список.
3. Выберите желаемое место для поля со списком. Появится линия, указывающая место, где будет создано ваше поле со списком. В этом примере он будет помещен между полем «Город» и «Добавить в список рассылки».
4. Появится диалоговое окно мастера Combo Box Wizard. Выберите «Я буду вводить нужные мне значения», затем нажмите «Далее».
5. Введите параметры, которые должны появиться в раскрывающемся списке. Каждый вариант должен находиться в отдельной строке. В этом примере создается поле со списком для поля «Добавить в список рассылки»? в форме, поэтому мы введем все возможные действительные ответы для этой школы. Пользователи смогут выбрать один из трех вариантов из заполненного поля со списком: «Нет», «Да» — еженедельно и «Да» — «Особые события и предложения».
6. При необходимости измените размер столбца, чтобы отображался весь текст. Когда вы будете довольны своим объявлением, нажмите Далее.
7. Выберите Сохранить это значение в этом поле, затем щелкните стрелку раскрывающегося списка и выберите поле, которое вы хотите выбрать, из записанного поля со списком. Сделав свой выбор, нажмите Далее.
8. Введите метку или имя, которое появится рядом с полем со списком. Как правило, следует использовать имя поля, которое вы выбрали на предыдущем шаге.
9. Щелкните Готово. Поле со списком появится в форме. Если вы создали поле со списком для замены текущего поля, вы должны удалить первое поле. В этом примере вы можете заметить, что теперь есть два поля с одинаковым именем. Эти два поля отправляют информацию в одно и то же место, поэтому оба нам не нужны. Я удалю тот, без поля со списком.
10. Переключитесь в представление формы, чтобы установить флажок в поле со списком. Просто щелкните стрелку раскрывающегося списка и убедитесь, что в списке указаны правильные варианты. Поля со списком теперь можно использовать для импорта данных.
Если вы хотите включить раскрывающийся список с различными параметрами и не хотите импортировать их все, создайте поле со списком и выберите первый вариант в мастере поля со списком: я хочу получить значения из другого таблица или запрос. Это позволит вам создать раскрывающийся список из поля в таблице.
Некоторые пользователи сообщают, что Access не может работать с формой. Если у вас возникли проблемы с выполнением любого из представлений макета, попробуйте переключиться в представление «Дизайн».
Настройте параметры формы с помощью Листа свойств
Лист свойств — это панель управления, содержащая подробную информацию о вашей форме и ее компонентах. На странице свойств вы можете вносить изменения в каждую часть формы, как в функции, так и в интерфейсе.
Лучший способ ознакомиться со списком свойств — открыть его и выбрать в нем параметры. Когда вы выбираете параметр, Access отображает краткое описание параметра на нижней левой границе окна программы.
Обратите внимание, когда вы изменяете форму и ее поля. Вы можете внести незначительные изменения в страницу свойств. Поскольку существует так много вариантов, иногда бывает трудно вспомнить, какие из них вы использовали для изменения каждого аспекта формы.
Изменить настройки формы
На странице свойств слишком много вариантов, чтобы подробно обсуждать все в этой статье. В статье будут рассмотрены только два полезных элемента. В поле «Скрытие и настройка» есть параметр «Даты», который автоматически подставляет текущую дату. Практика этих процессов также поможет вам понять, как работать с другими настройками окна свойств.
Как скрыть поле
1. В режиме просмотра «Макет» или «Дизайн» выберите вкладку «Дизайн» и найдите группу «Инструменты». Щелкните команду «Свойства».
2. На правой панели появится окно свойств. В форме выберите поле, которое хотите скрыть. В этом примере мы скроем поле «Идентификатор клиента», потому что мы не хотим, чтобы какой-либо пользователь пытался его редактировать.
3. На странице свойств щелкните вкладку «Все», затем найдите параметр «Видимый» в пятой строке.
4. Щелкните стрелку раскрывающегося списка в правом столбце и выберите Нет.
5. Переключитесь в представление формы, чтобы убедиться, что поле скрыто.
Как настроить поле для автоматического заполнения текущей даты
1. В режиме просмотра «Макет» или «Дизайн» выберите вкладку «Дизайн» и найдите группу «Инструменты». Щелкните команду «Свойства».
2. На правой панели появится окно свойств. В форме выберите школу, в которой вы хотите автоматически указать текущую дату. Это должно быть поле с типом данных даты. В примере в этой статье будет выбрано поле «Дата получения» в форме «Заказы».
3. На странице свойств щелкните вкладку «Данные», а затем выберите поле «Значение по умолчанию» в четвертой строке. Нажмите кнопку «Построитель выражений», которая появляется в столбце справа.
4. Откроется диалоговое окно «Построитель выражений». В списке «Элементы выражения» щелкните слова «Общие выражения».
5. В списке Common Expressions дважды щелкните Current Date.
6. Будет добавлено выражение для текущей даты. Затем нажмите ОК.
7. Переключитесь в представление формы, чтобы убедиться, что выражение работает. Когда вы создаете новую запись с помощью этой формы, поле измененной даты автоматически заполняется текущей датой.
Упражняться!
Создать нескольких подчиненных форм в главной
Использование разных подчиненных форм в главной
Друзья, нужна помощь экспертов. Ваяю БД оборудования по заводу. В главной форме отображаются.
Какой метод лучше использовать, если у главной формы много подчиненных форм?
всем привет, вот такой вопрос для тех кто в этом имеет опыт: есть основная форма, на ней.
Несколько подчиненных форм
Здравствуйте! Я совсем чайник, впервые делаю базу с несколькими подчиненными таблицами (точнее.
Добавлено через 17 часов 0 минут
Вопрос остался, как сделать 3 подчиненные формы на основной, чтобы работал динамический отбор? Мастером больше двух создать нельзя. Предложенный выше способ вообще не дает эффекта, так как для 3-ей подчиненной формы я не знаю как указать зависимость от 2-ой.
Вложения
Database40.7z (14.7 Кб, 125 просмотров) |
ltv_1953, Мне нужно получить такую форму:
в основной выбирается продукт, в 1-й подчиненной динамически отсеивается страна, во 2-й в зависимости от страны отсеиваются года, а в 3-й в зависимости от года отсеиваются поставщики.
Добавлено через 3 минуты
ltv_1953, Кроме того, такая реализация не позволяет использовать табличную или ленточную форму данных для 1 и 2-й подчиненной формы.
Вложения
Спорт Клуб.rar (58.5 Кб, 151 просмотров) |
ltv_1953, да база пока в зародыше, те же 4 таблицы, что в Вашем примере, такая же связь у всех. Подчиненность нужна вложенная, как в Вашем примере. Но мне нужно, чтобы 1-ю и 2-ю подчиненные формы можно было представить в режиме таблицы, а это невозможно, так как нельзя представить в табличном виде форму, если она содержит внутри себя вложенную форму. Другими словами, в Вашем примере, в табличном виде можно представить только последнюю, 3-ю вложенную форму, так как у нее нет других подчиненных.
Добавлено через 9 минут
kmv-puh, Абсолютно верно, зависимость именно такая. Но в Вашем примере только 2 подчиненные формы, а с ними проблем нет. Проблема возникает, когда нужно иметь 3 подчиненные формы. Например, в Вашем случае, если бы у спорт-клуба были филиалы, то тогда Вы конечно же начали бы отбор не с ФИО тренера, а с филиала. Логично? Вот у меня такая же проблема.
Как создать подчиненную форму в access
В процессе создания приложения СУБД Access или базы данных решаются две основные проблемы: первая – создание структуры БД (таблиц и связей между ними), вторая – организация интерфейса пользователя для работы с БД. Основным средством организации интерфейса пользователя в приложениях СУБД Access являются формы, которые могут быть использованы для ввода, редактирования, вывода данных и других целей.
Если в одной форме требуется просматривать данные из нескольких таблиц или запросов, то для этой цели необходимо применить подчиненные формы. Подчиненная форма – это форма, вставленная в другую форму. Например, подчиненную форму можно использовать при просмотре информации о студентах факультета в группах на примере базы данных Training_students_VP.
Подчиненные формы целесообразно создавать для отображения данных из таблиц, имеющих отношение «один-ко-многим». На примере базы данных Training_students_VP рассмотрим технологию создания подчиненной формы, которая имеет две таблицы «Группы студентов» и «Студенты» связанные отношением «один-ко-многим» (Рис.1)
Если в окне базы данных Training_students_VP открыть таблицу «Группы студентов», то можно увидеть, что рядом с каждой записью таблицы помещен знак «+» (Рис. 2).
Это означает, что у этой таблицы появилась подтаблица. Если щелкнуть на знаке «+», например, перед второй записью, то отобразится таблица «Студенты» и мы увидим, что в группе БФ-16б числится два студента (Ильин и Иванов). Теперь создадим подчиненную форму, содержащую эти две таблицы. Существует несколько способов создания подчиненных форм. Наиболее простой способ создания подчиненных форм – это создание Автоформы.
Для создания Автоформы необходимо на вкладке Таблицы в окне базы данных выделить таблицу «Группы студентов» и на панели инструментов щелкнуть кнопку «Новый объект: форма». В открывшемся меню надо выбрать команду Автоформа, в результате получим Главную форму «Группы студентов», в которую вставлена подчиненная таблица «Студенты». Затем сохраним форму как «Группы студентов_ПФ» и закроем ее. Скриншот Главной и подчиненной формы представлен на Рис. 3.
Преобразуем полученную форму. Для этого в режиме конструктора в Главной форме удалим поле КодГруппы, слово «Название» заменим на «Группа» и изменим некоторые размеры формы. После проведенных изменений, автоформа (под имененм Podch_gr_st_a) будет иметь вид, представленный на Рис. 4.
Создать подчиненную форму можно и с помощью Конструктора. Для этого в окне базы данных надо перейти на вкладку формы и щелкнуть на кнопке создать, а в качестве источника данных выбрать таблицу «Студенты» и щелкнуть ОК. В полученную пустую стандартную форму требуется перетащить поля: Фамилия, Имя, Отчество, пол, дата рождения и другие необходимые поля, а затем сохранить и закрыть данную форму.
Аналогично надо создать вторую (главную) форму «Группы студентов». В качестве источника данных выбрать «Группы студентов» и щелкнуть ОК. В полученную форму требуется перетащить поля: Название, Курс и Семестр. Кроме того, в полученной форме предусмотреть место для таблицы «Студенты», а затем сохранить данную форму.
Затем на форму «Группы студентов» открытую в режиме конструктора можно перетащить подчиненную форму «Студенты» из окна базы данных. В результате получим Главную форму «Группы студентов», в которую вставлена подчиненная таблица «Студенты».
Как создать подчиненную форму в access
В Access отношение представляет собой связь между совпадающими полями двух таблиц, которая позволяет установить соответствие между записями этих таблиц. Так, например, можно связать отношением таблицы Типы и Товары, воспользовавшись общим полем КодТипа.
Каждый тип включает несколько товаров, но каждый товар может относиться только к одному типу. Это пример наиболее распространенного типа отношений, называемого один-ко-многим (то есть, одной записи в таблице Типы соответствует несколько записей в таблице Товары).
При создании форм и запросов Access распознает отношения между базисными объектами, но не всегда правильно. Поэтому лучше установить отношения между объектами вручную, тем более что это не представляет проблемы.
В этом упражнении вы установите отношение между таблицами Типы и Товары, а затем добавите к форме Типы подчиненную форму. Подчиненная форма предназначена для просмотра товаров, принадлежащих типу, отображающегося в главной форме. В качестве рабочей будет использоваться папка Office XP SBS\Access\Chap11\Subform. Выполните следующие шаги.
Другие типы отношений
Помимо отношения один-ко-многим, существуют отношения один-к-одному и многие-ко-многим, но они встречаются реже.
В отношении один-к-одному каждой записи в одной таблице соответствует только одна запись в другой таблице. Этот тип отношений применяется в том случае, если таблица содержит много полей. Для удобства ее можно разбить на две связанные таблицы, поместив редко используемые поля в отдельную таблицу.
Отношение многие-ко-многим, в сущности, представляет собой два отношения один- ко-многим, которые реализуются через третью таблицу. Например, в базе данных GardenCo имеются таблицы Товары, Заказы и Детали заказа. Таблица Товары содержит по одной записи для каждого товара. Запись таблицы Заказы описывает один заказ, не включая при этом перечня заказанных товаров. Эти данные хранятся в таблице Детали заказа. То есть, одной записи в таблице Заказы соответствует несколько записей в таблице Детали заказа. Очевидно, что между таблицами Заказы и Детали заказа существует отношение один-ко-многим. Но такое же отношение связывает таблицы Товары и Детали заказа. Таблица Детали заказа является связующей в отношении многие-ко-многим между таблицами Товары и Заказы. Проще говоря, один и тот же товар может содержаться в нескольких заказах, а каждый заказ может включать несколько товаров.
На схеме данных появится линия, отображающая отношение один-ко-многим между полями КодТипа в обеих таблицах, как показано ниже.
Создание главной и подчиненной форм с помощью мастера
Если при создании формы известно, что она должна содержать подчиненную, можно поручить эту работу мастеру, выполнив следующие шаги.
Теперь можно доработать форму в соответствии с вашими нуждами так же, как это делалось в предыдущем упражнении.
Создание и использование подчиненных отчетов
При работе с реляционными данными (когда связанные данные хранятся в отдельных таблицах) часто нужно просмотреть сведения из нескольких таблиц или запросов в одном отчете. Например, может потребоваться просмотреть одновременно сведения о клиенте и его заказах. С помощью подчиненного отчета в Access можно отобразить в отчете сведения о клиенте и заказах логичным и наглядным образом. Access поддерживает целый ряд способов быстрого создания подчиненных отчетов.
В этой статье
Общие сведения о подчиненных отчетах
Подчиненный отчет — это отчет, который вставляется в другой отчет. При сочетании отчетов один из них должен служить основным отчетом, содержа другим. Основной отчет является связанным или связанным. Связанный отчет может отображать данные, в нем есть таблица, запрос или SQL, указанная в его свойстве «Источник записей». Это отчет, который не основан на таблице, запросе или SQL (то есть свойство «Источник записей» отчета пусто).
Свободный основной отчет с двумя несвязанными подчиненными отчетами
Свободный основной отчет не отображает данные сам по себе, но может быть основным для несвязанных подчиненных отчетов, которые вы хотите объединить.
1. Свободный основной отчет содержит два подчиненных отчета.
2. В одном подчиненном отчете отображаются совокупные продажи сотрудника.
3. Во втором подчиненном отчете продажи отображаются по категориям.
Основной и подчиненный отчеты, привязанные к одному источнику записей
Вы можете использовать основной отчет для отображения подробных записей, таких как каждая продажа в году, а в подчиненном отобразить сводные сведения, такие как итоговые продажи в каждом квартале.
1. В подчиненном отчете отображаются совокупные продажи за год по кварталам.
2. Основной отчет содержит продажи за каждый день.
Основной и подчиненный отчеты, привязанные к связанным источникам записей
Основной отчет может содержать данные, общие с одним или несколькими подчиненными отчетами. В этом случае подчиненный отчет содержит данные, связанные с данными основного отчета.
1. Основной отчет содержит названия всех ярмарок и города, в которых они проводятся.
2. Подчиненный отчет содержит сведения о представителях компании на каждой из ярмарок.
Подчиненные формы в отчетах
Основной отчет может включать в себя не только подчиненные формы, но и сколько угодно подчиненных форм и отчетов. Кроме того, основной отчет может содержать до семи уровней подчиненной формы и отчетов. Например, отчет может содержать подчиненный отчет, в котором может быть подчиненная форма или отчет и так далее — до семи уровней.
Если добавить подчиненную форму в отчет, а затем открыть отчет в представлении отчета, можно использовать подчиненную форму для сортировки записей и перемещения по ним. Код Visual Basic для приложений (VBA) и внедренные макросы, связанные с формой и ее элементами управления, будут выполняться и в этом контексте, хотя некоторые события при этом будут отключены. Добавлять, изменять или удалять записи с помощью подчиненных форм в отчете нельзя.
Связывание отчета с подчиненной формой или отчетом
При вставке подчиненной формы или отчета со сведениями, которые связаны с данными в основном отчете, элементы управления в подчиненном отчете должны быть привязаны к основному отчету. Эта связь гарантирует, что записи в подчиненной форме или отчете будут соответствовать записям в основном отчете.
При создании подчиненной формы или отчета с помощью мастера или путем перетаскивания объекта из области навигации в отчет приложение Access автоматически связывает форму или отчет с основным отчетом, если выполняется одно из приведенных ниже условий.
Вы определяете связи для выбранных таблиц или для базовых таблиц выбранных запросов.
Основной отчет основан на таблице с первичный ключ, а подчиненнаяформа или отчет — на основе таблицы, содержаной поле с тем же именем, что и первичный ключ, и с таким же или совместимым тип данных. Например, если первичным ключом таблицы, которая является основным отчетом, является поле «Автонумер», а его свойство FieldSize имеет значение «Длинное integer»,соответствующее поле в таблице, соответствующей подчиненной формы или отчета, должно быть числом, свойство FieldSize имеет значение «Длинное integer». При выборе запроса или запроса в качестве источника записей подчиненной формы или подчиненного отчета таблицы, в которых они находятся, должны соответствовать одинаковым условиям.
Создание подчиненных отчетов
Если вы планируете связать подчиненный отчет с основным, перед выполнением приведенных ниже действий убедитесь в том, что базовые источники данных связаны.
Создание подчиненных отчетов с помощью мастера
Предполагается, что у вас уже есть отчет, в который вы хотите добавить подчиненный отчет. Дополнительные сведения о создании отчетов см. в статьях Создание простого отчета и Создание отчета с группировкой или сводного отчета.
В области навигации щелкните правой кнопкой мыши отчет, в который нужно добавить подчиненный отчет, и выберите пункт Конструктор.
На вкладке Конструктор в группе Элементы управления щелкните стрелку вниз в правом нижнем углу коллекции Элементы управления, чтобы открыть ее.
В открывшемся меню установите параметр Использовать мастера.
Снова откройте коллекцию элементов управления и выберите элемент Подчиненная форма/отчет.
Щелкните отчет в том месте, где нужно добавить подчиненный отчет.
Если появится диалоговое окно с уведомлением безопасности, нажмите кнопку Открыть, чтобы запустить мастер.
Если вы хотите создать подчиненную форму или отчет и привязать их к таблице или запросу, на первой странице мастера подчиненных отчетов установите переключатель в положение Имеющиеся таблицы и запросы. Если у вас уже есть отчет или форма, которые вы хотите использовать в качестве подчиненного отчета, установите переключатель в положение Имеющиеся отчеты и формы, выберите в списке отчет или форму и нажмите кнопку Далее.
Примечание: Если в базе данных нет других отчетов и форм, поле списка будет пустым, а параметр Имеющиеся отчеты и формы будет недоступен.
Если на предыдущей странице мастера вы выбрали параметр Имеющиеся отчеты и формы, пропустите это действие и перейдите к действию 9. В противном случае выберите в списке Таблицы и запросы таблицу или запрос с полями, которые нужно включить в подчиненный отчет, а затем дважды щелкните нужные поля в списке Доступные поля, чтобы добавить их в подчиненный отчет.
Если вы планируете привязать подчиненный отчет к основному отчету, добавьте поля, которые будут использоваться для создания связи, пусть даже отображать их не требуется. Как правило, связанным полем является поле «ИД». На приведенном выше рисунке таблица «Заказы» является источником записей для подчиненного отчета, а таблица «Клиенты» — источником записей для основного отчета. Поскольку таблица «Заказы» связана с таблицей «Клиенты» полем «ИД клиента», оно добавлено в список Выбранные поля.
Примечание: В подчиненный отчет можно добавить поля из нескольких таблиц и запросов. Завершив добавление полей из одной таблицы, выберите следующую таблицу или запрос в списке Таблицы и запросы и также добавьте нужные поля.
Чтобы продолжить, нажмите кнопку Далее.
На этой странице мастера определяется способ связывания подчиненного и основного отчетов. Если Access обнаружит поля, подходящие для связи подчиненного и основного отчетов, мастер отобразит список предлагаемых вариантов.
Вы можете выбрать вариант, который лучше всего подходит для вашей ситуации, или, если вы не хотите, чтобы отчет был связан с основным отчетом, выберите вариант «Нет». Если вы хотите связать подчиненный и основной отчеты, но ни один из предложений не подходит, нажмите кнопку «Определить собственные».
Примечание: Если мастер не сможет найти подходящие для связи поля, список предлагаемых вариантов не появится и автоматически будет выбран параметр Самостоятельное определение.
Когда выбран параметр Самостоятельное определение, мастер отображает два набора списков.
В списке Поля формы или отчета выберите поля основного отчета, с помощью которых нужно связать его с подчиненной формой или отчетом. Можно выбрать до трех полей, при этом каждое выбранное поле должно соответствовать полю в источнике данных подчиненной формы или отчета.
В списке Поля подчиненной формы или отчета выберите соответствующие поля подчиненной формы или отчета, связанные с выбранным основным отчетом.
Чтобы оставить подчиненную форму или отчет без связи с основным отчетом, оставьте все списки пустыми.
Чтобы продолжить, нажмите кнопку Далее.
На последней странице мастера введите имя подчиненной формы или отчета или просто нажмите кнопку Готово, чтобы принять имя по умолчанию.
Access добавит в отчет элемент управления подчиненного отчета и привяжет его (то есть установит для него свойство Объект-источник) одним из описанных ниже способов.
Если на первой странице мастера был выбран параметр Имеющиеся отчеты и формы, Access привяжет элемент управления подчиненного отчета к указанному вами отчету или форме.
Если на первой странице мастера был выбран параметр Имеющиеся таблицы или запросы, Access создаст новый объект отчета в области навигации и привяжет к нему элемент управления подчиненного отчета. Новому объекту отчета будет назначено имя, которое вы ввели на последней странице мастера.
Добавление подчиненных отчетов в виде таблиц, запросов, форм или отчетов
Вы можете быстро добавить подчиненный отчет, открыв основной отчет в режиме макета или конструктора и перетащив в него нужный объект из области навигации. Если нужно, чтобы подчиненный отчет был связан с основным, убедитесь в том, что базовые источники записей связаны и включают поля, которые будут использоваться для связи подчиненной формы или отчета с основным отчетом.
В области навигации щелкните правой кнопкой мыши отчет, который нужно использовать как основной, и выберите в контекстном меню пункт Режим макета или Конструктор.
Перетащите таблицу, запрос, форму или другой отчет из области навигации в ту часть главного отчета, где должен находиться подчиненный отчет.
Access выполнит одно из описанных ниже действий.
Если Access удастся определить, как связать эти два объекта, в отчет будет добавлен элемент управления подчиненного отчета. Если вы добавляете форму или отчет, Access свяжет элемент управления подчиненного отчета с этим объектом. Если вы добавляете таблицу или запрос, Access сначала создаст объект отчета, а затем свяжет его с элементом управления подчиненного отчета.
Если Access не удастся определить, как связать эти два объекта, откроется мастер подчиненных отчетов. Чтобы продолжить работу, выполните действия, описанные в разделе Создание подчиненного отчета с помощью мастера, начиная с действия 9.
После выполнения всех этапов мастера Access добавит подчиненный отчет в отчет.
Чтобы проверить связь подчиненной формы или отчета с основным отчетом, выполните приведенные ниже инструкции.
Щелкните элемент управления подчиненного отчета, чтобы выделить его.
Если окно свойств не отобразится, нажмите клавишу F4.
На вкладке Данные окна свойств обратите внимание на свойства Основные поля и Подчиненные поля.
Для несвязанных подчиненных форм или отчетов оставьте поля обоих свойств пустыми.
Для связанных подчиненных форм или отчетов убедитесь в том, что свойства Основные поля и Подчиненные поля содержат поля, которые связывают два объекта. Например, если в основном отчете отображаются сведения из таблицы «Сотрудники», а в подчиненной форме или отчете — сведения из таблицы «Заказы», свойство Основные поля должно содержать поле «ИД» из таблицы «Сотрудники», а свойство Подчиненные поля — поле «ИД сотрудника» из таблицы «Заказы».
Возможно, эти свойства придется изменить, чтобы подчиненная форма или отчет работали должным образом. Для этого выполните описанные ниже действия.
На вкладке Данные окна свойств щелкните поле Основные поля, а затем нажмите кнопку Построить .
Откроется диалоговое окно Связь с полями подчиненной формы.
В списках «Master Fields» и «Child Fields» (Поля master и Child Fields) выберите поля, с помощью которые вы хотите связать отчеты. Если вы не знаете, какие поля использовать, нажмите кнопку «Предложить», чтобы Access попытается определить связующие поля. По окончании нажмите кнопку ОК.
Если поле, которое вы хотите использовать для связывания отчета, не отображается, возможно, источник записей основного отчета либо подчиненной формы или отчета придется изменить так, чтобы это поле в них присутствовало. Например, если отчет основан на запросе, убедитесь в том, что связующее поле присутствует в результатах запроса.
Сохраните основной отчет, перейдите в представление отчета и проверьте работу отчета.
Добавление таблицы или запроса в отчет в качестве таблицы данных
Таблица данных — это простое визуальное представление данных, похожее на электронную таблицу. Каждый столбец в таблице данных представляет поле в исходной таблице или запросе, а каждая строка — запись. Для отображения таблицы данных в отчете можно использовать элемент управления «Подчиненная форма/отчет». Этот способ хорош, если нужно просмотреть данные в сжатой форме, но при этом вы не хотите использовать возможности форматирования формы или отчета. Чтобы добавить таблицу данных в отчет, выполните указанные ниже действия.
В области навигации щелкните правой кнопкой мыши отчет, который нужно использовать как основной, а затем выберите в контекстном меню пункт Конструктор.
На вкладке Конструктор в группе Элементы управления щелкните стрелку вниз в правом нижнем углу коллекции Элементы управления, чтобы открыть ее.
Убедитесь в том, что в открывшемся меню не установлен параметр Использовать мастера.
Снова откройте коллекцию элементов управления и выберите элемент Подчиненная форма/отчет.
Щелкните отчет в том месте, где нужно добавить подчиненный отчет.
Если запустится мастер подчиненных форм, нажмите кнопку Отмена, чтобы закрыть его.
Если окно свойств не отобразится, нажмите клавишу F4.
В отчете щелкните элемент управления подчиненного отчета, чтобы выбрать его.
На вкладке Данные окна свойств щелкните стрелку вниз в поле Объект-источник и выберите таблицу или запрос, которые нужно отобразить в элементе управления подчиненного отчета. Например, чтобы отобразить таблицу «Заказы», выберите пункт Таблица.Заказы.
Access попытается связать таблицу данных с основным отчетом, руководствуясь определенными в ней связями.
На вкладке Данные окна свойств обратите внимание на свойства Основные поля и Подчиненные поля.
Для несвязанных таблиц данных оставьте поля этих свойств пустыми.
Для связанных таблиц данных убедитесь в том, что в свойствах Основные поля и Подчиненные поля отображаются те поля, которые связывают основной отчет с этими таблицами данных. Например, если в основном отчете отображаются сведения из таблицы «Сотрудники», а в таблице данных — сведения из таблицы «Заказы», свойство Основные поля должно содержать поле «ИД» из таблицы «Сотрудники», а свойство Подчиненные поля — поле «ИД сотрудника» из таблицы «Заказы».
Иногда вам может потребоваться настроить связующие поля самостоятельно. Для этого выполните указанные ниже действия.
На вкладке Данные окна свойств щелкните поле Основные поля, а затем нажмите кнопку Построить .
Если откроется диалоговое окно уведомления безопасности, нажмите кнопку Открыть.
Откроется диалоговое окно Связь с полями подчиненной формы.
В списках «Основные поля» и «Основные поля» выберите поля, которые вы хотите использовать для связываия основного отчета с таблицой. Если вы не знаете, какие поля использовать, нажмите кнопку «Предложить», чтобы Access попытается определить связующие поля. По окончании нажмите кнопку ОК.
Если связующее поле не отображается, источник записей основного отчета или таблицы данных нужно изменить так, чтобы это поле в них присутствовало. Например, если таблица данных основана на запросе, убедитесь в том, что связующее поле присутствует в результатах запроса.
Сохраните основной отчет, перейдите в представление отчета и проверьте работу отчета.
Изменение макета подчиненного отчета
После добавления подчиненного отчета может потребоваться изменить его макет или создать связь между данными подчиненного и основного отчетов. Ниже приведены советы по выполнению этих задач.
Открытие подчиненной формы или отчета в новом окне в режиме конструктора
Чтобы внести изменения в макет подчиненной формы или отчета во время работы над основным отчетом в режиме конструктора, можно открыть их в отдельном окне.
Щелкните подчиненную форму или отчет.
На вкладке Конструктор в группе Сервис нажмите кнопку Подчиненная форма в новом окне.
Примечание: Эта команда недоступна, если элемент управления подчиненной формы или отчета привязан к таблице или запросу.
Отображение итогов из подчиненного отчета в основном отчете
Предположим, что вы используете в подчиненном поле «Заказы» текстовое поле «Суммарная стоимость доставки», которое вычисляет сумму столбца «Стоимость доставки». Чтобы отобразить сумму из подчиненного отчета в основном отчете, необходимо добавить в основной отчет текстовое поле, а затем использовать выражение для ссылки на текстовое поле «Суммарная стоимость доставки» в подчиненном отчете. Для этого выполните указанные ниже действия.
В области навигации щелкните основной отчет правой кнопкой мыши и выберите в контекстном меню пункт Конструктор.
На вкладке Конструктор в группе Элементы управления выберите элемент Поле.
Щелкните основной отчет там, где нужно добавить новое поле.
Если окно свойств не отобразится, нажмите клавишу F4.
В окне свойств на вкладке Данные введите в поле свойства Данные следующее выражение:
=IIf(IsError([Orders subreport].[Report]![Shipping Fee Total]),0,[Orders subreport].[Report]![Shipping Fee Total])
В этом примере можно использовать более простое выражение =[Orders subreport].[Report]![Shipping Fee Total], но, если в подчиненном отчете не будет данных, его элемент управления в основном отчете отобразит значение #Error. Использование функции IsError в функции IIf (в первом выражении), гарантирует, что, если подчиненный отчет не возвратит никаких данных, в текстовом поле в основном отчете отобразится значение «ноль» (0).
Чтобы создать выражение с помощью построителя выражений, нажмите кнопку Построить в поле свойства Данные.
На вкладке Макет окна свойств назначьте свойству Формат соответствующее значение (в данном случае Денежный).
Сохраните основной отчет, перейдите в представление отчета и проверьте правильность вычислений.
Как создать подчиненную форму в access
Оглавление
1. Подчинённые формы
Подчинённой формой называется форма, вставленная в основную форму. Такая форма удобна для просмотра, добавления или редактирования данных в таблицах с отношениями (связями) один ко-многим. Например, можно создать форму с подчинённой формой для отображении данных для таблиц «Группы» и «Ученики». Данные из таблицы «Группы» являются стороной «один», а данные из таблицы «Ученики» являются стороной «многие». Каждая группа содержит несколько учеников. В основной форме будут отображаться данные на стороне «один», в подчинённой форме отображаются данные на стороне «многие». С помощью такой формы удобно просматривать, добавлять, редактировать данные по конкретной группе учеников. Иначе говоря, в подчинённой форме отображаются данные соответствующие текущей записи в основной форме. Например, если текущей записью является группа учеников номер два, то в подчинённой форме отображаются имена и фамилии учащихся только из этой группы.
1.1. Создание формы с подчинённой формой
Примечание. При создании таких форм убедитесь, что ключевое поле таблицы, форма которой будет подчинённая, имеет тип данных «счётчик». В случае, если у этой таблицы ключевое поле имеет тип «числовой», то ключевое поле необходимо добавить в форму для заполнения. Так как ключевое поле не должно быть пустым.
Такую форму удобней всего создавать с помощью Мастера форм. Для этого выполните команду ленточного меню «Создание вкладка/Мастер форм». На первом шаге из раскрывающегося списка выберем таблицу «Группы» и добавим необходимые поля этой таблицы в форму. Далее, на этом же шаге мастера, из раскрывающегося списка «Таблицы или запросы» выберем таблицу «Ученики» и добавим необходимые поля.
Примечание: порядок выбора таблиц не имеет значения.
1.2. Работа с основной и подчинённой формой
При добавлении основной формы с подчинённой в Области переходов создаются два объекта: подчинённая форма и основная форма. Для работы необходимо открывать основную форму, (которая содержит в себе две формы).
Навигация в основной и подчинённой формах
Для навигации в формах используется клавиша Tab и комбинация клавиш Shift+Tab, по записям в основной и подчинённой формах. Если курсор находится в последнем поле основной формы, то нажатие клавиши Tab переведёт курсор на первое поле в подчинённой форме. Если курсор находится на последнем поле подчинённой формы, нажатие клавиши Tab переведёт курсор на следующую или новую пустую запись подчинённой формы. Для быстрой навигации по записям форм можно применять диалог «Переходов», который открывается по комбинации клавиш Alt+F5. Для быстрого перемещения с одной записи основной формы на следующую запись можно воспользоваться следующими действиями:
Или, находясь на записи основной формы, вызовите диалог «Переходов» и нажмите кнопку «Следующая запись».
1.3. Заполнение таблиц с помощью основной и подчинённой форм
Комбинацией клавиш Ctrl+Tab или Ctrl+Shift+Tab перейти на запись основной формы.
Комбинацией клавиш Alt+F5открыть диалог «Переходов». В открывшимся диалоге выберите кнопку «Новая пустая запись». Курсор перейдёт в первое пустое поле. В нашем примере это поле «Номер группы».
С помощью диалога «Переходы» можно быстро перемещаться по записям как в основной форме, так и в подчинённой форме.
2. Подтаблицы
В приложении Microsoft Access подтаблица создаётся автоматически при создании таблицы, удовлетворяющей одному из следующих критериев:
Например, есть две таблицы «ФИО» и «Данные», с которыми мы работали в первой части руководства. Эти таблицы имеют связь один к-одному.
Таблица «ФИО» содержит записи с полями «Фамилия» и «Имя» пациентов, а таблица «Данные» содержит записи с данными этих пациентов. Открыв таблицу «ФИО» в режиме «Таблица», мы имеем возможность просмотреть данные по пациенту прямо из этой таблицы. Для этого необходимо воспользоваться комбинацией клавиш Ctrl+Shift+стрелка вниз.
2.1. Вставка подтаблиц
Подтаблицы можно вставлять как в основную таблицу, так и в подтаблицу, тем самым можно просматривать данные по нескольким таблицам, открыв всего лишь одну таблицу. Например, есть три таблицы «ФИО», «Адреса» и «Телефоны». По умолчанию в этих таблицах нет подтаблиц, но есть возможность их туда вставить. Тогда можно будет открыть таблицу «ФИО», найти интересующую запись, раскрыв в ней подтаблицу «Адреса», посмотреть адрес интересующего человека. Тем временем в раскрытой подтаблице «Адреса» можно отобразить подтаблицу «Телефоны» и посмотреть нужный телефон.
Для вставки подтаблицы в основную таблицу выполните следующие действия. Откройте основную таблицу в режиме «Таблица». В нашем примере это будет таблица «ФИО». Выполните команду ленточного меню «Главная вкладка/Дополнительно кнопка с меню/Подтаблицы подменю/подтаблица». По вкладке «Главная» клавишей Tab необходимо переместиться до второй кнопки «Дополнительно» и раскрыть её клавишей [Пробел]. Далее клавишей Tab переместиться до подменю «Подтаблицы». Раскрыв это подменю нажать кнопку «Подтаблица».
Примечание. в этом же меню можно удалять подтаблицу, которая относится к открытой таблице или подтаблице. Для этого необходимо нажать кнопку «Удалить». Если в открытой таблице или подтаблице нет подтаблице, то кнопка «Удалить» будет недоступной.
После активации кнопки «Подтаблица откроется меню вставки подтаблицы.
В диалоговом окне «Вставка подтаблицы» откройте вкладку «Таблицы». Из списка таблиц выберите таблицу, которая будет в качестве подтаблицы. В поле «Подчиненные поля» выберите поле, которое требуется использовать в качестве внешнего ключа, или связанное поле, которое обеспечит данные для подтаблицы. В поле «Основные поля» выберите поле, которое требуется использовать в качестве первичного ключа, или связанное поле для главной таблицы. Нажмите кнопку «OK».
В нашем примере в качестве подтаблицы выбрана таблица «Адреса». В подчинённом поле и в основном поле выбраны ключевые поля «Код».
Для добавления подтаблицы в подтаблицу выполните следующие действия. Откройте основную таблицу (в нашем примере это таблица «ФИО»). Сочетанием клавиш Ctrl+Shift+стрелка вниз раскройте подтаблицу «Адреса». Выполните вышеописанные действия по добавлению подтаблицы «Телефоны».
Примечание. В каждой таблице или подтаблице может быть встроена только одна подтаблица.
3. Внешние данные
3.1. Импорт данных из другой базы данных
Для того чтобы импортировать объект из другой базы данных, необходимо выполнить команду ленточного меню «Внешние данные/ Access «. Откроется диалоговое окно открытие файла. В текстовой строке укажите путь до файла базы данных или нажмите кнопку «Обзор». После выбора файла откроется диалог импорта, в котором клавишей [Пробел] отметьте на вкладках нужные объекты и нажмите «Ok». Выбранные объекты импортируются в конечную базу данных. Если в конечной базе данных есть объект с таким же именем, как у импортированного объекта, то к имени импортированного объекта добавляется цифра 1, 2, и т.д.
Сохранение спецификации импорта
Для того чтобы при следующем импорте объектов произвести процедуру импорта без мастера, можно сохранить шаги импорта при завершении первой процедуры импорта. Для этого в появившимся окне диалога отметьте флаг «Сохранить шаги импорта».
В поле «Сохранить, как» введите имя спецификации импорта. При необходимости введите описание в поле «Описание». В этом же диалоге присутствует флажок «Создание задачи Outlook», который позволяет задать регулярное повторение процедуры. Если отметить этот флажок, откроется программа «Outlook». Используйте эту процедуру, чтобы завершить шаги операции.
Примечание. Если программа Outlook не установлена, будет выведено сообщение об ошибке. Если программа Outlook не настроена, откроется мастер запуска Outlook. Для настройки Outlook следуйте инструкциям мастера.
3.2. Создание связи с данными другой базы данных Access.
Связывание объектов одной базы данных с другой позволяет создать связь с данными без их импорта, так что самые свежие данные можно будет просматривать и изменять в исходной и конечной базах данных, не создавая и не поддерживая две копии одних и тех же данных. Нельзя создавать связи со следующими типами данных:
При создании связи с таблицей базы данных Access автоматически создаётся новая таблица, называемая связанной, которая обеспечивает связь с исходными записями и полями. Любые изменения данных в исходной базе данных отражаются в связанной таблице конечной базы данных, и наоборот. Однако изменить структуру связанной таблицы в конечной базе данных нельзя. Другими словами, в связанной таблице невозможны такие изменения, как добавление или удаление полей или изменение типа данных поля. Для добавления или изменения таблиц в базе данных необходимо применять запросы на добавление или изменения.
Для того чтобы выполнить связь данных с другой базой данных, необходимо выполнить команду ленточного меню «Внешние данные/ Access «. В открывшимся диалоге, в текстовой строке «Имя файла», указать путь до файла или нажать кнопку «Обзор». В этом же окне отметить радиокнопку «Создать связанную таблицу для связи с источником данных». Нажать кнопку «Открыть». В следующем окне мастера клавишей [Пробел] отметить объекты, с которыми будет создаваться связь, и нажать кнопку «Ok». В результате в конечной базе данных будет создана связанная таблица. Если в конечной базе данных уже есть таблица с таким именем, то к имени связанной таблице будет добавлена цифра 1, 2, и т. д. иначе говоря, при создании связанной таблицы данные в конечной базе данных не перезаписываются и не заменяются.
3.3. Импорт данных из других источников
Иногда приходится работать с данными, которые находятся в других программах, например, в Excel. Тогда их можно импортировать в Access. Этот способ работает лучше всего, если данные уже разделены на столбцы, как это сделано в таблице Excel. Если данные введены в текстовом редакторе, необходимо сначала разделить их на столбцы с помощью знаков табуляции либо преобразовать в таблицу в текстовом редакторе.
Для импорта данных, которые находятся в другой программе, необходимо выполнить команду ленточного меню «Внешние данные», и выбрать команду, соответствующую типу файла, из которого импортируются данные. Например, для импорта данных из таблицы Excel нажмите кнопку «Excel». Если нужный тип программы отсутствует, необходимо нажать кнопку «Дополнительно».
Например, есть текстовый файл с данными, которые необходимо импортировать в базу данных.
3.3.1. Импорт данных из текстового файла
Перед импортом таких данных необходимо подготовить этот файл, т. е. разделить данные символом-разделителем, например, символом табуляции. Необходимо в первой строке текстового файла определить и указать названия полей будущей таблицы Access. Закрыть исходный файл.
3.3.2. Импорт данных из приложения «excel»
Перед непосредственным импортом данных из книги Excel данные надо подготовить к импорту. Для этого выполните следующие действия. Определите будущие заголовки полей таблицы, т. е. впишите в нужные ячейки листа или диапазона нужные значения.
Если предполагается импортировать определённый диапазон данных, то этому диапазону необходимо дать имя. Для именования диапазона выполните следующие действия:
Примечание. Диапазоном ячеек может быть группа ячеек или одна ячейка.
Закройте исходный файл. Откройте конечную базу данных. Для того чтобы импортировать данные из этого приложения, необходимо выполнить команду ленточного меню «Внешние данные/Excel». Откроется первое диалоговое окно мастера, в котором необходимо указать путь до файла и отметить радиокнопку «Импортировать данные источника в новую таблицу в текущей базе данных». Нажать кнопку «Ok». Следующий шаг в мастере предоставляет возможность выбрать объект из книги Excel, который надо импортировать. Есть возможность импортировать лист Excel или именованный диапазон. Выберите соответствующую радиокнопку. Например, необходимо импортировать «Лист1», тогда выбираем радиокнопку «листы» и в списке листов выбираем «Лист1». Если отметить радиокнопку «Именованные диапазоны», то в следующем списке необходимо выбрать имя диапазона. Для перехода на следующий шаг нажимаем клавишу Enter или переключаемся на JAWS-курсор и нажимаем кнопку «Далее».
3.4. Связывание данных из других источников
Связывание позволяет использовать данные из файла другой программы, не импортируя их. В этом случае можно просматривать обновлённые данные как в исходной программе, так и в самой таблице Access. При этом не требуется создавать и обновлять копию данных в Access. При связывании с файлом в Access создаётся новая таблица, которая связывается с исходным файлом. Все изменения, вносимые в исходный файл, отражаются в связанной таблице. При этом изменение данных таблицы в Access не доступно. Если необходимо внести изменения в содержимое или структуру файла, следует открыть исходный файл и изменить его. Процедура связывания данных из других источников с базой данных похожа на процедуру импорта, но есть кое какие отличия. Для того чтобы выполнить эту процедуру, выполните команду ленточного меню «Внешние данные вкладка» и выберите тип нужного файла. В открывшемся диалоге мастера укажите путь до файла и отметьте радиокнопку «Создать связанную таблицу для связи с источником данных». Далее следуйте командам мастера. При связывании данных с другим источником нельзя выбирать ключевое поле, так как в связанной таблице поле «Код» будет отсутствовать. Если в базе данных уже есть одна или несколько таблиц, то в диалоге на первом шаге мастера становится доступной радиокнопка «Добавить копию записей в конец таблицы». Выберите её, если необходимо добавить какие-то данные в конец существующей таблицы. При выбранной радиокнопки «Добавить копию записей в конец таблицы» в этом же диалоге появляется список доступных таблиц. Выберите таблицу, в которую будут добавляться данные. Укажите путь до исходного файла, нажмите кнопку «OK», далее следуйте командам мастера. При добавлении данных в конец таблицы Access нужно помнить о том, что нельзя таким образом добавлять данные в связанную таблицу. Для добавления данных в связанные таблицы используйте исходный файл или запрос на добавления. Примечание. При добавлении данных в связанные таблицы добавленные данные так же добавляются в источник связанных таблиц.
4. Условия отбора
2. перед созданием запроса-действия, можно сделать копию таблицы, с которой придется работать. Для этого в области переходов поместите курсор на эту таблицу. Стандартным сочетанием клавиш скопируйте таблицу. Затем вставьте её в область переходов. Access выдаст сообщение о добавлении таблицы. К имени таблицы будет добавлено слово «Копия».
При работе с запросом-действия, будет полезно и в некоторых задачах необходимо использовать инструмент «Условия отбора».
5.1. Запросы на добавление
Запрос на добавление нужен в тех случаях, когда надо перенести данные из одной таблицы в другую или из таблицы из другой базы данных, чтобы не копировать их в ручную. Запрос такого типа создаётся в несколько этапов:
Рассмотрим запрос на добавление в одной базе данных. Предположим, что есть две таблицы «Ученики» и «Сотрудники». Необходимо перенести данные из таблицы «Ученики» в таблицу «сотрудники». Для этого выполним следующие действия.
Создаём запрос на выборку по таблице «Ученики».
Преобразовываем запрос на выборку в запрос на добавление. Для этого необходимо созданный запрос открыть в режиме «Конструктор». В ленточном меню во вкладке «Конструктор» выполняем пункт «добавление». Откроется диалог, в котором необходимо выбрать целевую таблицу, в которую будут копироваться данные. В этом же диалоге есть две радиокнопки, по умолчанию выбрана радиокнопка «Добавление записей в текущей базе данных». Если необходимо добавить данные в другую базу данных, то выберите соответствующую радиокнопку «Добавление записей в другую базу данных». Нажмите кнопку «Ok». Откроется бланк запроса на добавление. В этом бланке можно найти и просмотреть строку добавления, в которой отображаются целевые поля. Отображение целевых полей зависит от первого этапа создания запроса, т. е. от того, как был создан запрос на выборку. Если в запросе на выборку указать все поля таблицы, по которой будет создаваться запрос, например, в формате ученики. * (Звездочка), то и в строке добавления отображение будет аналогичным, т.е. Сотрудники. * (Звездочка). Если добавить отдельные поля к запросу, названия которых в исходной и конечной таблицах совпадают, Access автоматически добавляет совпадающие целевые поля в строку «Добавить к» в запросе. Если какие-либо имена в исходной и целевой таблицах не совпадают, Access добавляет совпадающие поля и оставляет отличающиеся поля пустыми.
Примечание. Если целевое поле оставлено пустым, запрос не добавит данных к этому полю. Перед выполнением запроса просмотрите результат, для этого комбинацией клавиш Ctrl+ русская точка переключитесь в режим «Таблица». Для выполнения запроса переключитесь в режим «Конструктор» и на вкладке «Конструктор» нажмите кнопку «Выполнить». Access выдаст предупреждающее сообщение, что в таблицу будет добавлено x записей. Нажмите «Да» для продолжения. Если после нажатия кнопки «Выполнить ничего не происходит, переключитесь на JAWS-курсор. Вверху страницы посмотрите, не появилось ли сообщение Access, что активное содержимое отключено. Если это сообщение появилось, то двойным щелчком мыши щёлкните по надписи «Включить активное содержимое». После включения активного содержимого повторите выполнение запроса.
5.2. Запрос на создание таблицы
Если необходимо создать таблицу на основе данных по уже созданным таблицам, то это можно сделать с помощью запроса. Запрос на создание таблицы проходит в два этапа:
Если запрос на выборку уже создан, откройте этот запрос в режиме «Конструктор». Преобразуйте этот запрос в запрос на создание таблицы. Для этого на вкладке «Конструктор» нажмите кнопку «Создание таблицы». Откроется диалог, в котором необходимо указать имя новой таблицы. С помощью выбора радиокнопок укажите, где будет сохранена новая таблица:
Нажмите кнопку «Ok». Откроется бланк запроса. Перед выполнением действий откройте запрос в режиме «Таблица» и просмотрите результат. Если результат устраивает, то переключите запрос в режим «Конструктор» и нажмите на вкладке «Конструктор» кнопку «Выполнить». Access выдаст сообщение о количестве записей, помещаемых в новую таблицу. Если в базе данных, в которую будет помещаться таблица, есть таблица с таким же именем, то Access выдаст предупреждающее сообщение, что существующая таблица будет удалена перед выполнением запроса. Если после нажатия кнопки «Выполнить ни чего не происходит, переключитесь на JAWS-курсор. Вверху страницы посмотрите, не появилось ли сообщение Access, что активное содержимое отключено. Если это сообщение появилось, то двойным щелчком мыши щелкните по надписи, «Включить активное содержимое». После включения активного содержимого повторите выполнение запроса.
5.3. Запрос на обновление
В некоторых случаях необходимо обновить записи в имеющихся таблицах. Если этих записей мало, то их можно обновить в ручную, а если записей, которые необходимо обновить, много, тогда эти записи можно обновить с помощью запроса на обновление.
В отличие от диалогового окна «Поиск и замена», запрос на обновление может принимать несколько условий и позволяет обновить большое число записей за один раз, а также изменить записи сразу в нескольких таблицах.
Процесс обновления записей в таблицах или в таблице, проходит в два этапа:
Создайте запрос на выборку по тем таблицам, в которых необходимо обновить данные. Комбинацией клавиш Ctrl+русская точка Переключите запрос в режим «Таблица», чтобы убедиться, что запрос возвратил необходимые данные. Откройте созданный запрос в режиме «Конструктор». Выполните команду ленточного меню «Конструктор вкладка/Обновление». В бланке запроса появится строка «Обновление». Переместиться в ту строку можно клавишей со стрелкой вниз. Поместите курсор в то поле, в котором необходимо обновить записи, спуститесь в строку «Обновление» и впишите значение (выражение) для обновления.
Например, необходимо для поля «Статус» изменить значение «Ученик» на значение «Выпускник». Впишите значение «Выпускник» в поле «Обновление», и выполните команду ленточного меню «Конструктор вкладка/Выполнить». Access выдаст предупреждающее сообщение, что будет заменено xxx записей. Нажмите кнопку «Да». Запрос откроется уже с обновлёнными записями. Таким же образом можно обновлять, например, поле с типом данных «логический», «нет» на «да» и наоборот.
5.3.1. Изменение записей в одной таблице на записи из другой таблицы
С помощью запроса на обновление можно заменять записи одной таблицы на запись другой таблицы.
Примечание. Для того чтобы заменить записи одной таблицы на записи другой, необходимо, чтобы эти таблицы были связанны между собой. Создание связей (отношений) см. часть первая.
Создаём запрос на выборку по этим таблицам.
В открывшемся бланке запроса указываем поля конечной таблицы. Т. е. той таблицы, в которой будут обновляться записи. Переключаем запрос в режим «Таблица», чтобы убедиться, что запрос возвратил необходимые данные. Переключаем запрос в режим «Конструктор». Преобразуем запрос на выборку в запрос на обновление. Выполняем команду ленточного меню «Конструктор вкладка/Обновление».
Откроется бланк запроса, в котором появится строка «Обновление». Перемещаем курсор в эту строку. В каждый столбец, содержащий конечное поле, добавляем имя исходной таблицы и поля исходной таблицы, соответствующее полю в конечной таблице, используя следующий синтаксис:
Имена таблицы и поля заключаются в квадратные скобки и разделяются точкой. Затем на вкладке «Конструктор» нажмите кнопку «Выполнить». Access выдаст сообщение о том, что будет заменено xxx записей. Нажмите кнопку «Да» для выполнения обновления.
5.4. Запрос на удаление
В режиме Конструктора запроса необходимо указать таблицу, в которой будут проводиться удаления. Затем определить критерии, и обязательно просмотреть результаты выполнения запроса на выборку.
Если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать его в запрос на удаление.
Удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности базы данных, по следующим причинам: таблица является частью отношения «один-ко-многим» и в качестве условия обеспечения целостности данных использована опция «Каскадное удаление связанных полей».
Примечание. если установлена опция «Каскадное удаление связанных полей» и вы пытаетесь удалить записи в режиме просмотра таблицы, то получите предупреждение о возможном удалении данных в других таблицах. А при использовании запросов на удаление вы не увидите предупреждения. MS Access выдаст только информацию о количестве удаляемых записей, но ничего не скажет про каскадное удаление.
Рассмотрим такой пример: есть три таблицы «ФИО», «Адреса», «телефоны». Из этих таблиц необходимо удалить записи связанные с фамилией Иванов и Иванова. Все эти таблицы связанны между собой. Для удаление этих данных сначала создадим запрос на выборку по таблице «ФИО». На вкладке «Конструктор» нажмём кнопку «Создать запрос в режиме конструктора». Добавим в бланк таблицу «ФИО». В бланке запроса укажем поле «Фамилия». Преобразуем запрос на выборку в запрос на удаление, для этого, на вкладке «конструктор» нажмём кнопку «Удаление». В бланке запроса в строке «Условие отбора» впишем: Иванов* (звездочка). Обратите внимание на синтаксис условия отбора. выражение записано в формате ИвановЗвёздочка. Звёздочка означает любой символ в конце слова. Тем самым запрос возвратит нам данные и по Иванову, и по Иванова. Переключимся в режим «Таблица», чтобы убедиться в том, что запрос возвратил нужные данные. Видим, что отобразились данные только по Иванову и по Ивановой, переключаемся в режим «Конструктор» и на вкладке конструктор жмём кнопку «Выполнить». Access выдаст диалог, что будет удалено x записей. Жмём кнопку «Да» для выполнения действия.
Рассмотрим другой пример: в таблице «ФИО» есть несколько людей с одинаковыми фамилиями, но с разными именами. Необходимо из этой базы удалить данные для Иванов Пётр и Иванова Татьяна. В базе есть ещё записи по Иванову Сергей и Ивановой Людмилы. Для осуществления такого удаления необходимо:
При таком удалении записи будут удалены во всех связанных таблицах, данные которых ссылаются на таблицу «ФИО». Иначе говоря, удалятся и адреса, и телефоны, которые относились к этим фамилиям.
Рассмотрим удаление данных из таблицы на стороне многие. Есть две таблицы «Ученики» на стороне «многие» и «Группы» на стороне «один». Необходимо удалить записи с учениками, которые учатся в группе номер три. Соответственно необходимо выполнить запрос так, чтобы он возвратил данные именно по группе номер три. Для этого выполним следующие действия.
В бланке запроса указываем таблицу, из которой будут удаляться данные (в нашем примере это таблица «Ученики»), в следующем формат:
Тем самым мы укажем программе, что данные будут удаляться именно из этой таблице.
Во втором столбце бланка запроса укажем только имя поля из таблицы «Группы», в нашем случае это будет поле «Номер группы. В этом же столбце спускаемся до ячейки «Условие отбора» и прописываем там цифру 3. Тем самым мы указали, что это поле будет условием для удаления данных из таблицы «Ученики», и удаляться будут учащиеся в третей группе.
На вкладке «Конструктор» нажимаем кнопку «Удаление», запрос преобразуется в запрос на удаление. В строке «Удаление» можно увидеть, что к столбцу таблицы «Ученики», в ячейки удаление выбран параметр «из», а в ячейки удаление для столбца «Номер группы» выбран параметр «условие». Переключаем запрос в режим «Таблица», чтобы убедиться, что запрос возвратил необходимые данные. Затем переключаем запрос в режим «Конструктор» и на вкладке «Конструктор» жмём «Выполнить». Access выдаст предупреждающее сообщение, что будет удалено x записей. Для подтверждения нажмите «Да».
Примечание. При удалении данных из таблицы на стороне «многие» не будут удалены данные из таблицы на стороне «один». При удалении данных из таблицы на стороне «один» будут удалены данные и из таблицы на стороне «многие».
Примечание. При удалении записей значение поля «Код» не пересчитывается. Другими словами, записи удаляются вместе со значением счетчика, и при дальнейшем добавлении записей в таблицу значение счетчика продолжает увеличиваться. Это связано с тем, что значение этого поля служит для связывания таблиц и является уникальным идентификатором записи в данной таблице. Если значение этого поля каждый раз пересчитывать, то будут нарушены связи с другими таблицами, которые используют это поле для сопоставления данных из связанных таблиц. Вас не должен вводить в заблуждение тип этого поля «счётчик», так как назначение этого поля выражается его названием «Код»!
Ниже приведён способ, как сбросить значения счетчика. Для этого можно воспользоваться запросом на создание таблицы. При этом нужно помнить, что связи в базе данных придётся обновлять. Задумайтесь об этом, если ваша таблица содержит много записей.
Рассмотрим такой пример: есть две таблицы «Группы» и «Ученики». Из таблицы «Ученики» было удалено x записей и, соответственно, в поле «Код» отсутствуют некоторые значения (1; 3; 4;6). Чтобы сбросить счётчик, выполним следующие действия.
Создание главной и подчиненной форм с помощью Мастера автоформ
В предыдущей версии Access — Access 2000 появилась возможность более интеллектуального автоматического отслеживания связей между таблицами. Поэтому самые простые формы для связанных таблиц можно построить с помощью Мастера автоформ. Он сразу найдет все таблицы, которые связаны с главной отношением «один-ко-многим», и создаст для каждой такой таблицы подчиненную форму. В качестве примера давайте создадим новую форму «Клиенты», в которой должны быть отражены не только данные о клиенте, но и о его заказах.
Сначала откройте окно Схема данных (Relationship) и посмотрите, как связаны интересующие нас таблицы (рис. 9.30). Таблица «Клиенты» (Customers) связана с таблицей «Заказы» (Orders) отношением «один-ко-многим». В свою очередь таблица «Заказы» (Orders) связана с таблицей «Заказано» (Order Details) тоже отношением «один-ко-многим».
Рис. 9.30. Диалоговое окно Схема данных
Теперь в окне базы данных на странице Таблицы (Table) выделите таблицу «Клиенты» и нажмите стрелку вниз на кнопке Новый объект (New Object) на панели инструментов. В открывшемся списке выберите объект Автоформа (AutoForm).
Подождите, пока Мастер автоформ закончит свою работу. В результате вы должны увидеть на экране форму, которая представлена на рис. 9.31.
Чтобы открыть вторую подчиненную форму (список подчиненных записей следующего уровня), просто щелкните мышью по квадратику с крестом слева от выбранной записи в подчиненной форме. В данном примере в главной форме отображается одна запись о клиенте, а в подчиненной форме отображаются только те записи из таблицы «Заказы» (Orders), которые связаны с текущей записью в главной форме, т. е. только заказы текущего клиента. В списке подчиненных записей для выбранного заказа отображается список заказанных продуктов.
Рис. 9.31. Составная форма, созданная Мастером автоформ
Уже из этой формы видно, что Access обеспечивает вложенность подчиненных форм, причем максимальное количество уровней вложенности достаточно велико — 7. С другой стороны, если таблица связана отношением «один-ко-многим» с несколькими таблицами, то в одну главную форму можно встроить любое количество подчиненных форм.
Такое иерархическое представление связанных данных удобно не только для отображения, но и для ввода данных.
Например, нужно оформить заказ клиенту, которого еще нет в базе данных. Значит, требуется добавить запись о новом клиенте в таблицу. Для этого перейдите в режим ввода записи в главной форме, щелкнув мышью по кнопке Новая запись (New Record) внизу формы или на панели инструментов. Введите данные о клиенте, а затем переместите фокус в подчиненную форму для оформления заказа. Как только вы переместите фокус в подчиненную форму, запись о клиенте из главной формы будет сохранена. Теперь подчиненная запись о заказе будет корректно добавлена в таблицу «Заказы» (Orders), гарантируя сохранение ссылочной целостности.
Аналогично будет сохранена запись о заказе, прежде чем начнут вводиться данные о заказанных продуктах во вложенной подчиненной форме. Записи в подчиненной форме сохраняются при переходе к каждой следующей строке.
Источники информации:
- http://lektsii.org/15-73287.html
- http://spravochnick.ru/bazy_dannyh/bazy_dannyh_i_subd_na_primere_microsoft_access/formy_s_podchinennoy_formoy/
- http://snaptik.ru/sozdanie-form-form-v-access-2016/
- http://www.cyberforum.ru/ms-access/thread1139238.html
- http://subscribe.ru/archive/comp.soft.db.compsoftdba2003/201005/12140934.html/
- http://lms.tpu.ru/pluginfile.php/63455/mod_resource/content/3/6/1.html
- http://support.microsoft.com/ru-ru/office/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%B4%D1%87%D0%B8%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D1%85-%D0%BE%D1%82%D1%87%D0%B5%D1%82%D0%BE%D0%B2-816f987a-4615-4058-8f20-ce817093bb33
- http://win.tiflocomp.ru/docs/apps/msaccess2010_2.php
- http://www.taurion.ru/access/9/19