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

6.3.3. Составная форма, основанная на таблице и запросе

Создадим форму, содержащую информацию о сотрудниках и оформ-ленных ими заказах с указанием их сумм. В качестве базовой таблицы для главной формы будет выступать таблица Сотрудники. В качестве базовой таблицы для подчиненной формы следует использовать таблицу Заказы, так как именно она устанавливает перечень заказов по каждому сотруднику. Данные о названии и цене заказанных товаров должны выбираться из другой таблицы – Заказано. В итоге источником данных для подчиненной формы станет следующий запрос, бланк которого приведен на рисунке 6.12.

Рис. 6.12. Запрос-источник для подчиненной формы

Обычно подчиненную форму синхронизируют с главной формой по некоторому полю так, чтобы в подчиненной форме отбирались лишь записи, соответствующие текущей записи в главной форме. Поле для синхронизации в главной форме именуют основным полем, а в подчиненной – подчиненным полем.

В нашем примере основным полем следует выбрать поле КодСотрудника из таблицы Сотрудники, а подчиненным – поле КодСотрудника из созданного запроса ЗаказыСотрудников. Таким образом, в подчиненной форме, основанной на запросе, будут отбираться строки, соответствующие текущему сотруднику.

Порядок создания составной формы, основанной на таблице и запросе такой же, как было описано выше. Однако следует особо обратить внимание на источник данных для подчиненной формы – теперь это будет запрос ЗаказыСотрудников, из которого следует перенести в окно доступные поля все поля, кроме поля КодСотрудника (рис. 6.13).

Рис. 6.13. Выбор полей для подчиненной формы из запроса

Продолжите самостоятельно построение составной формы Оформленные сотрудниками заказы, следуя описанным выше инструкциям. В результате вы должны получить форму, представленную на рисунке 6.14. Если составная форма была создана правильно, тогда в подчиненной форме будут выводиться только те заказы, которые оформлял сотрудник, указанный в главной форме.

Рис. 6.14. Составная форма Оформленные сотрудниками заказы

6.3.4. Составная форма с вычисляемым полем в главной форме

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

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

Рис. 6.15. Составная форма Суммы заказов клиентов

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

Сначала создайте свободное текстовое поле и вычисляемый элемент управления, поле ИТОГО в примечании формы ДляКлиентов подчиненная форма.

Откройте форму ДляКлиентов подчиненная форма в режиме конструктора и наведите указатель на нижнюю границу полосы Примечание формы, и, когда он превратится в двунаправленную стрелку, перетащите границу вниз примерно на 1,5 см (рис. 6.16).

Рис. 6.16. Задание свойств для вычисляемого поля

На панели инструментов нажмите кнопку Поле и щелкните в области примечания формы – появится новое текстовое поле и его надпись.

Щелкните правой кнопкой в текстовом поле и выберите Свойства в появившемся меню. На вкладке Все в поле Имя введите Итого, а в поле Данные – выражение =Sum([ОтпускнаяЦена]).

Закройте окно свойств, сохраните и закройте форму ДляКлиентов подчиненная форма.

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

Откройте форму Суммы заказов клиентов в режиме конструктора. На панели инструментов нажмите кнопку Поле и щелкните рядом с полем Телефон – появится новое текстовое поле и его надпись. Измените надпись нового поля на «Заказано всего на сумму».

Щелкните правой кнопкой в текстовом поле и выберите Свойства в появившемся меню (рис. 6.17).

Рис. 6.17. Задание свойств свободного поля

для отображения результатов из подчиненной формы в главную

На вкладке Все в поле Имя введите КлиентИтого, а в поле Данные введите выражение

=[ДляКлиентов подчиненная форма].[Form]![Итого]

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

В поле Формат щелкните на стрелке вниз и выберите формат Денежный.

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

Рис. 6.18. Составная форма с вычисляемым полем

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