Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vtoraya_chast.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.03 Mб
Скачать

4 Создание форм на основе нескольких таблиц или многотабличных запросов

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

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

4.1 Создание подчиненных форм

Создадим форму для просмотра разговоров каждого абонента. Форма создается с помощью Мастера форм. В первом окне (Рисунок 4.1) выбираются нужные поля из разных таблиц:

  • из таблицы «Абонент» – Фамилия, Имя и Номер телефона;

  • из таблицы «Город» – Название города и Тариф;

  • из таблицы «Разговор» – Дата разговора и количество минут.

В следующем окне (Рисунок 4.2) нужно определить, какая из форм будет основной (роди-тельской). Для того, чтобы получить информацию о разговорах каждого абонента, родительской должна быть таблица Абонент. Для подчиненной формы выбирается режим Ленточная форма.

Полученная форма представлена на Рисунке 4.3.

Форма состоит из двух форм: родительской, или главной Абонент и подчиненной Разговор. Это хорошо видно на Рисунке 4.4, где полученная форма показана в режиме конструктора.

Внимание! Как родительская, так и подчиненная формы имеют свои свойства, и это надо учитывать при модификации форм в режиме конструктора.

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

Поэтому после создания формы ее нужно отредактировать в режиме конструктора.

В первую очередь поле, где содержится фамилия абонента, заменяется Полем со списком для более удобного выбора информации о нужном абоненте. Элемент Поле со списком выбирается ни панели элементов при нажатой кнопке мастера. При создании Поля со списком на родительской форме в первом открывшемся окне (Рисунок 4.5) нужно выбрать опцию «Поиск записи в форме на основе значения, которое содержит поле со списком», так как записи, отображаемые в подчиненной форме, должны соответствовать выбранной фамилии абонента на родительской форме. В следующем окне выбираются поля, которые станут столбцами поля со спискомКод абонента и Фамилия (можно выбрать только поле Фамилия, ключевое поле Код абонента присоединяется автоматически). Полученное Поле со списком показано на рисунке 4.6.

Затем удаляются все лишние элементы, загромождающие форму, такие как Область выделения, кнопки перехода, разделительные линии.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]