Как связать новую субформу с главной формой

Обновлено: 26.04.2024

Построим форму, показанную на рис. 3.43, в которой для каждого номера заказа выдаётся его дата, состав заказанных блюд с ценами и общая сумма.

Рис. 3.43

Рис. 3.43

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

Информацию о названиях блюд и ценах можно было бы взять из таблицы Блюда, но она напрямую не связана с таблицей Заказы, поэтому так сделать не получится. Однако у нас есть запрос ЗапросЗаказы, где эти данные объединены, поэтому состав заказа и цены на отдельные блюда мы возьмём из этого запроса.

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

Как мы уже упоминали, основной источник данных — это таблица Заказы. Щёлкнем на её имени правой кнопкой мыши и выберем пункт Мастер форм из контекстного меню. Включим в форму все поля.

На втором шаге мастер предлагает добавить субформу (подчинённую форму) — дополнительный источник данных, связанный с главной формой. Отметим флажок Добавить субформу (рис. 3.44).

Рис. 3.44

Рис. 3.44

Мастер определил, что для таблицы Заказы подчинённой является таблица Заказано (они связаны отношением 1 :N) и предлагает выбрать эту таблицу. Однако нам нужно использовать запрос, поэтому отметим второй вариант: Субформа, основанная на выбранных полях. Далее выберем поля Заказ, Блюда и Цена из запроса (рис. 3.45).

Рис. 3.45

Рис. 3.45

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

Рис. 3.46

Рис. 3.46

Затем выберем расположение элементов главной и подчинённой форм (рис. 3.47).

Рис. 3.47

Рис. 3.47

После завершения работы мастера нужно отрегулировать размеры полей и настроить формат вывода. Например, для правильного отображения цены нужно войти в конструктор форм, щёлкнуть правой кнопкой мыши на столбце Цена и выбрать пункт Заменить на — Поле валюты. Количество десятичных знаков можно изменить с помощью свойства Точность в окне свойств столбца (пункт Столбец в контекстном меню). Столбец Заказ в подчинённой форме нужно просто удалить (пункт Удалить столбец в контекстном меню).

Осталось вывести общую стоимость заказа. Напомним, что её нужно взять из другого источника данных — запроса Запрос- КОплате. Это значит, что необходимо добавить к форме ещё одну субформу. Мастер тут не поможет, придётся выполнить эту операцию вручную.

Откроем форму в режиме дизайна (Конструктора) и запустим Навигатор форм, щелкнув на кнопке на нижнеи панели инструментов (рис. 3.48).

Рис. 3.48

Рис. 3.48

Здесь MainForm — это главная форма, a SubForm — подчинённая (её содержимое можно раскрыть, щёлкнув на знаке « + »). Остальные ветви дерева — это метки и поля данных.

Щёлкнем правой кнопкой мыши на имени главной формы и выберем в контекстном меню пункт Создать - Форма. В Навигаторе форм появится новая форма с именем Форма, но на экране ничего не меняется, ведь мы пока не добавили в эту форму ни одного элемента.

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

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

Осталось связать новую субформу с источником данных.. Для этого выделим субформу в окне Навигатора форм и выберем: Свойства в контекстном: меню. На вкладке Данные установим тип содержимого — запрос, в следующей строчке выберем Запрос - КОплате (рис. 3.49).

Рис. 3.49

Рис. 3.49

Теперь в окне свойств добавленного поля валюты на вкладке Данные надо выбрать поле даннык КОгглапъе. После этого форма полностью работоспособна.


Следующая страница Отчёты


Cкачать материалы урока

Построим форму, показанную на рис. 3.43, в которой для каждого номера заказа выдаётся его дата, состав заказанных блюд с ценами и общая сумма.

Рис. 3.43

Рис. 3.43

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

Информацию о названиях блюд и ценах можно было бы взять из таблицы Блюда, но она напрямую не связана с таблицей Заказы, поэтому так сделать не получится. Однако у нас есть запрос ЗапросЗаказы, где эти данные объединены, поэтому состав заказа и цены на отдельные блюда мы возьмём из этого запроса.

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

Как мы уже упоминали, основной источник данных — это таблица Заказы. Щёлкнем на её имени правой кнопкой мыши и выберем пункт Мастер форм из контекстного меню. Включим в форму все поля.

На втором шаге мастер предлагает добавить субформу (подчинённую форму) — дополнительный источник данных, связанный с главной формой. Отметим флажок Добавить субформу (рис. 3.44).

Рис. 3.44

Рис. 3.44

Мастер определил, что для таблицы Заказы подчинённой является таблица Заказано (они связаны отношением 1 :N) и предлагает выбрать эту таблицу. Однако нам нужно использовать запрос, поэтому отметим второй вариант: Субформа, основанная на выбранных полях. Далее выберем поля Заказ, Блюда и Цена из запроса (рис. 3.45).

Рис. 3.45

Рис. 3.45

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

Рис. 3.46

Рис. 3.46

Затем выберем расположение элементов главной и подчинённой форм (рис. 3.47).

Рис. 3.47

Рис. 3.47

После завершения работы мастера нужно отрегулировать размеры полей и настроить формат вывода. Например, для правильного отображения цены нужно войти в конструктор форм, щёлкнуть правой кнопкой мыши на столбце Цена и выбрать пункт Заменить на — Поле валюты. Количество десятичных знаков можно изменить с помощью свойства Точность в окне свойств столбца (пункт Столбец в контекстном меню). Столбец Заказ в подчинённой форме нужно просто удалить (пункт Удалить столбец в контекстном меню).

Осталось вывести общую стоимость заказа. Напомним, что её нужно взять из другого источника данных — запроса Запрос- КОплате. Это значит, что необходимо добавить к форме ещё одну субформу. Мастер тут не поможет, придётся выполнить эту операцию вручную.

Откроем форму в режиме дизайна (Конструктора) и запустим Навигатор форм, щелкнув на кнопке на нижнеи панели инструментов (рис. 3.48).

Рис. 3.48

Рис. 3.48

Здесь MainForm — это главная форма, a SubForm — подчинённая (её содержимое можно раскрыть, щёлкнув на знаке « + »). Остальные ветви дерева — это метки и поля данных.

Щёлкнем правой кнопкой мыши на имени главной формы и выберем в контекстном меню пункт Создать - Форма. В Навигаторе форм появится новая форма с именем Форма, но на экране ничего не меняется, ведь мы пока не добавили в эту форму ни одного элемента.

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

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

Осталось связать новую субформу с источником данных.. Для этого выделим субформу в окне Навигатора форм и выберем: Свойства в контекстном: меню. На вкладке Данные установим тип содержимого — запрос, в следующей строчке выберем Запрос - КОплате (рис. 3.49).

Рис. 3.49

Рис. 3.49

Теперь в окне свойств добавленного поля валюты на вкладке Данные надо выбрать поле даннык КОгглапъе. После этого форма полностью работоспособна.


Следующая страница Отчёты


Cкачать материалы урока

Построим форму, показанную на рис. 3.43, в которой для каждого номера заказа выдаётся его дата, состав заказанных блюд с ценами и общая сумма.

Рис. 3.43

Рис. 3.43

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

Информацию о названиях блюд и ценах можно было бы взять из таблицы Блюда, но она напрямую не связана с таблицей Заказы, поэтому так сделать не получится. Однако у нас есть запрос ЗапросЗаказы, где эти данные объединены, поэтому состав заказа и цены на отдельные блюда мы возьмём из этого запроса.

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

Как мы уже упоминали, основной источник данных — это таблица Заказы. Щёлкнем на её имени правой кнопкой мыши и выберем пункт Мастер форм из контекстного меню. Включим в форму все поля.

На втором шаге мастер предлагает добавить субформу (подчинённую форму) — дополнительный источник данных, связанный с главной формой. Отметим флажок Добавить субформу (рис. 3.44).

Рис. 3.44

Рис. 3.44

Мастер определил, что для таблицы Заказы подчинённой является таблица Заказано (они связаны отношением 1 :N) и предлагает выбрать эту таблицу. Однако нам нужно использовать запрос, поэтому отметим второй вариант: Субформа, основанная на выбранных полях. Далее выберем поля Заказ, Блюда и Цена из запроса (рис. 3.45).

Рис. 3.45

Рис. 3.45

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

Рис. 3.46

Рис. 3.46

Затем выберем расположение элементов главной и подчинённой форм (рис. 3.47).

Рис. 3.47

Рис. 3.47

После завершения работы мастера нужно отрегулировать размеры полей и настроить формат вывода. Например, для правильного отображения цены нужно войти в конструктор форм, щёлкнуть правой кнопкой мыши на столбце Цена и выбрать пункт Заменить на — Поле валюты. Количество десятичных знаков можно изменить с помощью свойства Точность в окне свойств столбца (пункт Столбец в контекстном меню). Столбец Заказ в подчинённой форме нужно просто удалить (пункт Удалить столбец в контекстном меню).

Осталось вывести общую стоимость заказа. Напомним, что её нужно взять из другого источника данных — запроса Запрос- КОплате. Это значит, что необходимо добавить к форме ещё одну субформу. Мастер тут не поможет, придётся выполнить эту операцию вручную.

Откроем форму в режиме дизайна (Конструктора) и запустим Навигатор форм, щелкнув на кнопке на нижнеи панели инструментов (рис. 3.48).

Рис. 3.48

Рис. 3.48

Здесь MainForm — это главная форма, a SubForm — подчинённая (её содержимое можно раскрыть, щёлкнув на знаке « + »). Остальные ветви дерева — это метки и поля данных.

Щёлкнем правой кнопкой мыши на имени главной формы и выберем в контекстном меню пункт Создать - Форма. В Навигаторе форм появится новая форма с именем Форма, но на экране ничего не меняется, ведь мы пока не добавили в эту форму ни одного элемента.

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

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

Осталось связать новую субформу с источником данных.. Для этого выделим субформу в окне Навигатора форм и выберем: Свойства в контекстном: меню. На вкладке Данные установим тип содержимого — запрос, в следующей строчке выберем Запрос - КОплате (рис. 3.49).

Рис. 3.49

Рис. 3.49

Теперь в окне свойств добавленного поля валюты на вкладке Данные надо выбрать поле даннык КОгглапъе. После этого форма полностью работоспособна.


Следующая страница Отчёты


Cкачать материалы урока

Работа с многотабличной базой данных

Таблицы и связи между ними

Вспомним про базу данных кафе, о которой мы говорили в конце § 14 (рис. 3.38).


Построим в новой базе данных (назовём её Кафе) все необхо​димые таблицы (пока без связей). Поскольку в этой базе несколь​ко таблиц, далее мы будем использовать общепринятые обозначе​ния типа Блюда.[Название] — это означает «поле Название таб​лицы Блюда».

Не забудьте, что связи устанавливаются только между одно​типными полями, т. е. поля Заказано.[Номер заказа] и Заказано.[Код блюда] должны быть целого типа (INTEGER), чтобы их можно было связать соответственно с номером заказа и кодом блюда. Для поля Блюда.[Цена] выберите десятичный тип (DECIMAL) и денежный формат для вывода на экран.

Чтобы установить связи между таблицами, выберем пункт меню ( В программе Microsoft Access нужно щёлкнуть на кнопке Схема данных на вкладке Работа с базами данных) Сервис – Связи. С помощью специального окна добавим в рабочую область (она пока пустая) все три таблицы (рис. 3.39).


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

Чтобы изменить или удалить связи, снова зайдите в меню Сервис – Связи. Для удаления связи её нужно выделить щелчком мышью и нажать клавишу Delete.

Теперь остаётся заполнить таблицы (можно придумать свои данные или взять их из § 14).

Запрос данных из нескольких таблиц

Мы построим два запроса к базе данных Кафе — простой и итоговый. Начнём с простого запроса, в котором будет собрана информация по всем сделанным заказам (рис. 3.40).


Посмотрим, откуда нужно взять данные. Номер заказа (в столбце Заказ) и дата хранятся в таблице Заказы, а название блюда и цена — в таблице Блюда. Перейдём к созданию запроса в режиме дизайна и добавим в рабочую область две названные таб​лицы (рис. 3.41).


Теперь добавим в столбцы бланка все нужные поля и выпол​ним запрос. Результаты окажутся неожиданными — запрос вы​даёт слишком много записей, больше, чем есть на самом деле. Дело в том, что таблицы в запросе оказались несвязанными: мы не добавили таблицу Заказано. Из неё не берутся данные, но она служит для связи таблиц в единую систему.

Теперь окно конструктора запросов можно закрыть, при со​хранении дайте запросу название ЗапросЗаказы. Обратите внима​ние, что нельзя называть запрос именем, которое совпадает с име​нем таблицы (например, Заказы) или другого запроса.

Двойной щелчок на имени запроса запускает его на выполне​ние. Щёлкнув правой кнопкой мыши на заголовке столбца, мож​но изменить его оформление. Установите таким образом денеж​ный формат для поля Цена и выравнивание вправо для всех чис​ловых данных.

Итоговый запрос

Теперь построим запрос, который считает общую стоимость каждого заказа (рис. 3.42).



Как видно из рис. 3.42, нам нужны номер и дата заказа (из таблицы Заказы) и цены блюд (из таблицы Блюда), которые нуж​но как-то сложить. Посмотрев на схему соединения таблиц, легко понять, что для правильного объединения данных нужно доба​вить в запрос таблицу Заказано, хотя ни одно её поле в резуль​тате запроса не выводится.

Создадим новый запрос в режиме дизайна и добавим в рабо​чую область таблицы Заказы, Заказано и Блюда. Перетащим в бланк запроса нужные поля и введём правильные заголовки стол​бцов (как на образце) в строке Псевдоним. Если выполнить этот запрос, мы увидим цены отдельных блюд, а не общую стоимость.

Чтобы подсчитать сумму цен по каждому заказу, в поле Цена найдём строку Функция ( В Microsoft Access эта строка называется Групповая операция. Чтобы она появилась в бланке запроса, нужно щёлкнуть по кнопке Итоги на вкладке Конструктор) и там выберем вариант Сумма. Кроме того, надо указать, какие группы записей объединять при суммиро​вании. Для этого в той же строке Функция в полях запроса Номер и Дата выберем вариант Group (Группировка). Это значит, что сум​ма считается для каждой уникальной комбинации «номер запроса – дата». Поскольку у нас номер заказа уникальный, фактически бу​дет рассчитана сумма каждого заказа. Выполним запрос и прове​рим, что он работает правильно. Теперь можно закрыть окно Ко​нструктора, сохранив запрос под именем ЗапросКОплате. Запустим запрос двойным щелчком и настроим формат вывода данных.

Кроме функции Сумма в итоговых запросах можно использо​вать и другие функции, например количество, среднее значение, минимум, максимум.

Формы


Построим форму, показанную на рис. 3.43, в которой для каждого номера заказа выдаётся его дата, состав заказанных блюд с ценами и общая сумма.

Форма создаётся на основе таблицы или запроса. В данном случае мы хотим полу​чить информацию о заказе, поэтому основ​ной источник данных — это таблица — За​казы.

Информацию о названиях блюд и ценах можно было бы взять из таблицы Блюда, но она напрямую не связана с таблицей Заказы, поэтому так сде​лать не получится. Однако у нас есть запрос ЗапросЗаказы, где эти данные объединены, поэтому состав заказа и цены на отдель​ные блюда мы возьмём из этого запроса.

Как получить общую сумму? Вспомним про ЗапросКОплате, где сумма для каждого заказа уже найдена. Таким образом, фор​ма объединяет информацию из таблицы Заказы и двух запросов. Связь между ними устанавливается по номеру заказа — это поле есть везде.

Как мы уже упоминали, основной источник данных — это таблица Заказы. Щёлкнем на её имени правой кнопкой мыши и выберем пункт Мастер форм из контекстного меню. Включим в форму все поля.

На втором шаге мастер предлагает добавить субформу (под​чинённую форму) — дополнительный источник данных, связанный с главной формой. Отметим флажок Добавить субформу (рис. 3.44).


Мастер определил, что для таблицы Заказы подчинённой является таблица Заказано (они связаны отношением 1:N) и пред​лагает выбрать эту таблицу. Однако нам нужно использовать за​прос, поэтому отметим второй вариант: Субформа, основанная на выбранных полях. Далее выберем поля Заказ, Блюда и Цена из запроса (рис. 3.45).


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


Затем выберем расположение элементов гла вной и подчи нённой форм (рис. 3.47).


После завершения работы мастера нужно отрегулировать раз​меры полей и настроить формат вывода. Например, для правиль​ного отображения цены нужно войти в конструктор форм, щёлк​нуть правой кнопкой мыши на столбце Цена и выбрать пункт За​менить на — Поле валюты. Количество десятичных знаков можно изменить с помощью свойства Точность в окне свойств столбца (пункт Столбец в контекстном меню). Столбец Заказ в под​чинённой форме нужно просто удалить (пункт Удалить столбец в контекстном меню).

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


Откроем форму в режиме дизайна (Кон​структора) и запустим Навигатор форм, щёлкнув на кнопке на нижней панели инструментов (рис. 3.48).


Здесь MainForm — это главная форма, a SubForm — подчи​нённая (её содержимое можно раскрыть, щёлкнув на знаке «+»). Остальные ветви дерева — это метки и поля данных.

Щёлкнем правой кнопкой мыши на имени главной формы и выберем в контекстном меню пункт Создать – Форма. В Нави​гаторе форм появится новая форма с именем Форма, но на экране ничего не меняется, ведь мы пока не добавили в эту форму ни од​ного элемента.

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


Проверьте, чтобы оно также принадлежало второй субформе.

Осталось связать новую субформу с источником данных. Для этого выделим субформу в окне Навигатора форм и выберем Свой​ства в контекстном меню. На вкладке Данные установим тип со​держимого — запрос, в следующей строчке выберем ЗапросКОплате (рис. 3.49).


Теперь в окне свойств добавленного поля валюты на вкладке Данные надо выбрать поле данных КОплате. После этого форма полностью работоспособна.

Отчёты

Используя подстроенный ранее запрос, составим подробный отчёт по всем заказам (рис. 3.50).


Обратите внимание, что заказы сгруппированы по датам, кроме того, дан​ные о блюдах, относящихся к одному зака​зу, тоже расположены вместе. Это отчёт с группировкой, причем здесь использованы два уровня группировки — сначала по дате, а потом — по номеру заказа.

Перейдём на вкладку Запросы, выде​лим запрос с именем ЗапросЗаказы и вы​берем пункт Мастер отчетов из контекст​ного меню. Добавим в отчёт все поля запроса, а на третьем шаге установим два уровня группировки — сначала по полю Дата, затем — по полю Заказ ( рис. 3.51).


Остальные шаги выполняются так же, как и для простых отчётов, с которыми мы работали раньше.

Вопросы и задания

1. Как установить связи между таблицами?

2. Как вы думаете, по каким признакам программа при установке связи автоматически определяет её тип (1:1, 1:N, N:1)?

3. Как строится запрос с выбором данных из нескольких таблиц?

4.​ Почему иногда в запрос приходится добавлять таблицы, данные

которых не появляются в результатах запроса?

5.​ Что такое итоговый запрос? Зачем он нужен?

6.​ Что такое группировка?

7.​ Что означает группировка по нескольким полям?

8.​ Объясните, что даёт группировка при построении отчёта.

9.​ Какие функции можно использовать в итоговых запросах?

10.​ Как построить форму с подчинённой формой (с субформой)?

11.​ Как добавить подчинённую форму с помощью Навигатора форм?

12.​ Как связать новую субформу с главной формой?

а) « Работа с базами данных в браузере Firefox»

б) «Работа с базами данных в браузере Chrome»

Задача

Постройте базу данных, запросы, форму и отчёт так, как показано в тексте параграфа.

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

Щелкните код на форме с несколькими элементами, чтобы открыть форму с одним элементом.

Эта статья не относится к веб-приложениям Access — типу баз данных, которые вы проектаете с помощью Access и публикуете в Интернете.

Если вы имели в виду что-то другое под "связыванием", см. другие типы ссылок в конце этой статьи.

Создание форм

В большинстве случаев две формы в drill-down configuration основаны на одной таблице или запросе. Если у вас уже есть пара форм, которые вы хотите использовать (одна из них — таблица или форма с несколькими пунктами, а другая — форма с одним элементом или с подробностями), этот раздел можно пропустить. В противном случае их можно создать с помощью указанных здесь процедур.

Создание таблицы или формы с несколькими пунктами

В области навигации выберите таблицу или запрос с данными, которые должны быть в форме таблицы.

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

Сохраните и закройте форму.

Дополнительные сведения о формах с несколькими элементами см. в статье "Создание формы с помощью инструмента "Несколько элементов".

Создание формы для одного элемента или формы detail:

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

Внести нужные изменения в оформление, а затем сохранить и закрыть форму.

Дополнительные сведения см. в инструменте "Форма"для создания формы.

Добавление логики, открываемой в форме подробностей

Теперь нужно добавить немного макроса в форму для нескольких элементов или таблицы. Макрос откроет форму подробностей и отобразит правильный элемент.

Не беспокойтесь, если вы мало работали с макросами. вы можете просто скопировать и вкопировать XML-текст, который вы найдете в этой процедуре.

Если используется форма таблицы, дважды щелкните ее в области навигации, чтобы открыть. Для формы с несколькими пунктами щелкните ее правой кнопкой мыши в области навигации и выберите пункт "Макет".

Если лист свойств еще не открыт, нажмите F4, чтобы открыть его.

Щелкните столбец, в который нужно добавить макрос. Это будет столбец, который вы щелкаете, чтобы открыть форму подробностей по завершению макроса. На рисунке выше макрос добавляется в столбец "ИД" frmContactList.

Совет: Макрос можно добавить в несколько столбцов.

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

Если Access запросит выбор построитель, выберите конструктор макроса и нажмите кнопку "ОК".

Щелкните пустую область конструктора макроса (под списком "Добавить новую макрос") и нажмите CTRL+V, чтобы ввести макрос. Если все будет хорошо, XML не будет показан в конструкторе макроса — он расширится в более учитаемые блоки макроса, как показано на следующем шаге.

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

На вкладке "Конструктор" нажмите кнопку "Сохранить" и выберите "Закрыть".

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

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

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

Другие типы связывания форм

Сведения о том, как создать комбинацию формы или подчиненной формы и связать их друг с другом, см. в документе "Создание формы, которая содержит подчиненную форму (форма "один-к-многим").

Сведения о создании формы, связанной с источником данных, например таблицей или запросом, см. в инструменте "Создание формы".

Читайте также: