Составная форма содержит два набора кнопок: один — для перемещения по записям в основной форме (то есть по кассетам), другой — для перемещения по записям в подчиненной форме (то есть по фильмам, записанным на текущей кассете). Для того, чтобы с помощью клавиатуры перейти из подчиненной формы в основную, надо использовать комбинации [Ctrl]+[Tab] (переход к следующей записи в основной форме) и [Ctrl]+[Shift]+[Tab] (переход к текущей записи в основной форме).
Составную форму можно использовать для добавления записей как в таблицу «Кассеты», так и в таблицу «Фильмы», причем добавлять новые фильмы можно только в одну из имеющихся кассет, и при этом добавлении номер кассеты автоматически записывается в поле «НомКас» добавляемого фильма.
A5–3. В существующей базе данных «Видео» разработать на основе связанных таблиц «Фильмы» и «Кассеты» (см. упражнение A5–1) составной отчет «Кассеты и фильмы» и отформатировать его по образцу.

![]()
Решение
Создайте новый простой отчет на основе таблицы «Кассеты» (см. первое примечание к 4.1); этот отчет будет играть роль основного отчета. В созданном отчете отформатируйте подписи к полям и расположите поля в одну линию, как указано в образце; поля «Ном» и «Длит» отцентрируйте. Откорректируйте нижний колонтитул по образцу (см. 4.9), измените заголовок отчета на Кассеты и фильмы и сохраните отчет под этим же именем (см. 5.1).
В качестве заготовки для подчиненного отчета удобно использовать имеющийся отчет «Фильмы (названия)» (см. упражнение A4–1), сохранив его под новым именем. Для этого выполните следующие действия.
5.3. Сохранение отчета под новым именем: в окне базы данных перейдите к группе объектов «Отчеты», выделите отчет «Фильмы (названия)»,
«Файл | Сохранить как/экспорт...» («Файл | Сохранить как...» в Access 2000/XP), в появившемся окне введите новое имя Фильмы (подчиненный отчет) (в версии Access 97, кроме того, выберите вариант «В текущей базе данных»), [OK].
5.4. Удаление разделов заголовков, примечаний и колонтитулов в подчиненном отчете: перейдите в режим конструктора для отчета «Фильмы (подчиненный отчет)», снимите флажок рядом с командой меню «Вид | Заголовок/примечание отчета», в появившемся окне подтвердите удаление данных разделов, нажав кнопку [Да]; затем снимите флажок рядом с командой меню «Вид | Колонтитулы», в появившемся окне подтвердите удаление колонтитулов, нажав кнопку [Да].
В подчиненных отчетах колонтитулы не используются. Области заголовка и примечаний использовать допустимо, но не рекомендуется, так как это перегружает составной отчет повторяющимися надписями.
Сохраните откорректированный отчет «Фильмы (подчиненный отчет)» (см. 1.5) и закройте его (см. 4.10).
5.5. Включение в подчиненный отчет поля связи: откройте в режиме конструктора запрос «Фильмы (названия)», на котором основан отчет «Фильмы (подчиненный отчет)», и поместите на бланк запроса еще одно поле:
«НомКас» (см. 3.2). После этого сохраните измененный запрос (см. 1.5) и закройте его (см. 1.16). Заметим, что поле «НомКас» не используется при отображении подчиненного отчета, но оно необходимо для установления связи между основным и подчиненным отчетом.
5.6. Включение в основной отчет подчиненного отчета с помощью панели элементов: откройте основной отчет «Кассеты и фильмы» в режиме конструктора (см. первое примечание к 1.15) и отобразите на экране вспомогательное окно «Панель элементов», выполнив команду «Вид | Панель элементов» или нажав кнопку
. Отожмите кнопку
на этой панели. Увеличьте высоту раздела «Область данных» в макете отчета, нажмите на панели элементов кнопку
и щелкните мышью в нижней части раздела «Область данных». В результате в отчет будет вставлен элемент типа «Подчиненный отчет», однако пока этот элемент не будет связан с каким-либо из имеющихся в базе данных отчетов. Измените связанный с подчиненным отчетом элемент-надпись на Фильмы (элемент-надпись расположен выше рамки подчиненного отчета).
Упростить вставку в форму или отчет сложных элементов может мастер вставки (если он был инсталлирован в процессе установки системы Access). Для активизации мастера при вставке элемента необходимо, чтобы кнопка
на панели элементов была «вдавленной» (нажатой); в этом случае в момент вставки элемента в форму/отчет на экране появляется окно, позволяющее в диалоговом режиме установить основные свойства добавляемого элемента.
5.7. Настройка свойств подчиненного отчета: вызовите окно свойств подчиненного отчета (см. 2.8), перейдите на вкладку «Данные» и определите свойство «Объект-источник», выбрав из выпадающего списка вариант «Отчет. Фильмы (подчиненный отчет)». В свойство «Подчиненные поля» введите НомКас, в свойство «Основные поля» введите Ном. Закройте окно свойств.
Перейдите в режим предварительного просмотра и убедитесь, что теперь в отчете после данных о каждой кассете выводятся данные о записанных на ней фильмах. Настройте ширину подчиненного отчета так, чтобы она оказалась достаточной для отображения всех его столбцов, и откорректируйте высоту области данных основного отчета.
Повторно сохраните откорректированный отчет «Кассеты и фильмы» и закройте базу данных (см. 1.17).
A5–4. Дополнить существующую базу данных «Магазин» (см. упражнение A1–3), создав новые таблицы «Товары» и «Продажи» (см. таблицы 5 и 6 в приложении). Связать таблицы «Клиенты» и «Продажи» с помощью полей «Ном» (таблица «Клиенты») и «НомКли» (таблица «Продажи»), а таблицы «Товары» и «Продажи» — с помощью полей «Ном» (таблица «Товары») и «НомТов» (таблица «Продажи»). Заполнить таблицы «Товары» и «Продажи» данными, указанными в таблицах 5 и 6 приложения. Для заполнения таблицы «Товары» разработать ленточную форму «Товары» по образцу.
Указание
После установления связей между таблицами (см. 5.1) схема данных должна выглядеть следующим образом:

Необходимость во вспомогательной таблице «Продажи» возникает из-за того, что записи таблиц «Клиенты» и «Товары» находятся в отношении «Многие ко многим» (многие клиенты могут купить один и тот же товар, и многие товары могут быть куплены одним клиентом), — сравните с отношением типа «Один ко многим» (см. упражнение A5–1).
A5–5. В существующей базе данных «Магазин» разработать на основе связанных таблиц «Клиенты», «Товары» и «Продажи» (см. упражнение A5–4) составную форму «Клиенты и продажи», позволяющую вводить данные в таблицы «Клиенты» и «Продажи».
Указания
Создаваемая форма не предназначена для заполнения таблицы «Товары» (для этого имеется специальная форма «Товары» — см. упражнение A5–4). Тем не менее, в целях повышения наглядности, желательно, чтобы вместе с номером купленного товара в подчиненной форме отображались и его характеристики, взятые из таблицы «Товары» («Наименование», «Фирма», «Цена»), без возможности их корректировки. Для этого подчиненную форму необходимо создать не на основе обычной таблицы «Продажи», а на основе вспомогательного запроса, объединяющего данные из таблиц «Продажи» и «Товары».
5.8. Формирование запроса на основе двух таблиц: создайте новый запрос, включив в него таблицы «Продажи» и «Товары» (см. 3.1); при этом в окне конструктора запросов будут отображены не только окна таблиц, но и связи между ними. Поместите на бланк запроса все поля таблицы «Продажи» и следующие поля таблицы «Товары»: «Наим», «Фирма», «Цена» (см. 3.2). Установите сортировку поля «Продажи. Ном» по возрастанию (см. 3.3) и сохраните запрос под именем Продажи и товары (см. 1.5).
Создайте на основе запроса «Продажи и товары» ленточную автоформу (см. 2.2); эта форма будет играть роль подчиненной формы. Откорректируйте форму следующим образом:
· удалите поле «НомКли» (отображать это поле нет необходимости, поскольку данные о клиенте будут выводиться в основной форме);
· не меняя внешнего вида, отключите возможность редактирования полей «Наим», «Фирма» и «Цена» (см. прием 2.10 и примечание к нему), так как эти поля будут использоваться только как информационные.
Созданную форму сохраните под именем Продажи (см. 1.5). Для того, чтобы сделать ввод данных в поле «НомТов» формы «Продажи» более удобным, выполните следующие действия.
5.9. Дополнительные возможности, связанные с выпадающими списками: преобразуйте поле «НомТов» в выпадающий список (см. 2.7) и определите его следующие свойства (ср. с 2.9):
| Вкладка | Свойство | Значение |
Данные | Тип источника строк | Таблица/запрос |
Данные | Источник строк | Товары |
Данные | Ограничиться списком | Да |
Макет | Число столбцов | 4 |
Макет | Заглавия столбцов | Да |
Макет | Ширина столбцов | 0,5;2;2;1 |
Благодаря сделанным настройкам, в поле «НомТов» можно вводить только номера, имеющиеся в таблице «Товары» (так как свойство «Ограничиться списком» имеет значение «Да»). При разворачивании списка в нем отображаются не только номера товаров, но и их характеристики, взятые из таблицы «Товары» (выпадающий список состоит из 4 столбцов, причем столбцы списка снабжаются названиями полей: «Ном», «Наим», «Фирма» и «Цена»). Ширина каждого столбца в выпадающем списке определяется в свойстве «Ширина столбцов» (соответственно 0,5 см, 2 см, 2 см, 1 см). Для отображения последнего столбца в выпадающем списке используйте полосу прокрутки в нижней части списка.
В качестве заготовки для основной формы можно использовать ранее созданную форму «Клиенты (комбинированная форма)» (см. упражнение A2–3). Создайте ее копию под именем Клиенты и продажи (копии форм создаются так же, как и копии отчетов — см. 5.3), измените ее режим отображения на «Простая форма» (см. 2.21) и включите в нее подчиненную форму «Продажи», используя либо перетаскивание (см. 5.2), либо панель элементов (см. 5.6).
Форму «Клиенты и продажи» можно сделать еще более наглядной, если внести следующие изменения в подчиненную форму «Продажи»: удалите из нее столбец «Наименование», замените заголовок «Номер товара» на «Наименование» и в свойстве «Ширина столбцов» выпадающего списка «НомТов» замените первое число на 0: 0;2;2;1 (теперь первый столбец выпадающего списка имеет нулевую ширину, и, поскольку он не отображается, в поле выпадающего списка выводится значение из второго столбца, то есть наименование товара).
A5–6. В существующей базе данных «Магазин» разработать на основе связанных таблиц «Клиенты», «Товары» и «Продажи» (см. упражнение A5–4) составной отчет «Клиенты и продажи» по образцу.


![]()
Указания
В качестве источника данных для подчиненного отчета используйте запрос «Продажи и товары» (см. 5.8). Для того, чтобы в основном отчете данные из подчиненного отчета обрамлялись рамкой, вызовите окно свойств элемента «Подчиненный отчет» (см. 2.8) и на вкладке «Макет» в свойстве «Тип границы» выберите вариант «Сплошная».
Приложение
Таблицы учебных баз данных
Таблица 1. Фильмы
Ном | Назв | Страна | Жанр | Длит | ДатаЗап | НомКас |
1 | Красавица и чудовище | США | Мультфильм | 85 | 15.07.97 | 1 |
2 | Правдивая ложь | США | Боевик | 130 | 23.09.98 | 2 |
3 | Русалочка | США | Мультфильм | 80 | 30.07.97 | 1 |
4 | Кавказская пленница | Россия | Комедия | 80 | 23.11.98 | 3 |
5 | Винни-Пух (3 серии) | Россия | Мультфильм | 45 | 24.07.97 | 4 |
6 | Крокодил Гена (4 серии) | Россия | Мультфильм | 40 | 27.07.97 | 4 |
7 | Профессионал | Франция | Боевик | 105 | 06.02.98 | 2 |
8 | Титаник | США | Мелодрама | 185 | 5 | |
9 | Игрушка | Франция | Комедия | 95 | 02.04.99 | 6 |
10 | Зита и Гита | Индия | Мелодрама | 100 | 24.12.98 | 7 |
11 | Берегись автомобиля | Россия | Комедия | 90 | 17.02.99 | 3 |
12 | Ромео и Джульетта | США | Мелодрама | 135 | 09.04.99 | 7 |
13 | Невезучие | Франция | Комедия | 100 | 15.02.00 | 6 |
14 | Снежная королева | Россия | Мультфильм | 30 | 18.03.98 | 4 |
15 | Отпетые мошенники | США | Комедия | 110 | 8 |
Таблица 2. Гимнастика
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


