Иллюстрированный самоучитель по Microsoft Access 2002

Создание вычисляемых полей для отображения итоговых значений

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

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

Хотя такое вычисляемое поле уже есть в базе данных "Борей", рассмотрим в качестве примера процедуру его создания:

  1. Создайте в области примечаний формы "Подчиненная форма заказов" (Orders Subform), содержащей позиции заказа, вычисляемое текстовое поле. В качестве значения этого поля задайте итоговую сумму:
    = Sum([ОтпускнаяЦена])(или = Sum([ExtendedPrice]))

    То есть это поле рассчитывается как сумма значений поля "ОтпускнаяЦена" (ExtendedPrice) для всех позиций заказа (рис. 9.48).

  2. Так как это поле не отображается, когда форма выводится на экран в режиме Таблицы, нужно в главной форме – "Заказы" (Orders) – создать еще одно вычисляемое поле, для которого в качестве источника данных необходимо указать итоговое поле подчиненной формы (рис. 9.49):
    = [Подчиненная форма заказов].Form1ПромежуточнаяСумма

    …или:

    = [Orders Subform].Form1[Order Subtotal]

Иллюстрированный самоучитель по Microsoft Access 2002 › Создание составных форм › Создание вычисляемых полей для отображения итоговых значений
Рис. 9.48. Поле для вычисления итогового значения

Особенностью создания итогового поля в подчиненной форме является то, что в функции Sum нельзя использовать имя вычисляемого элемента управления, можно использовать только имя вычисляемого поля в базовом запросе. Если же суммируемые значения вычисляются пряма в форме, то в формуле для итогового поля придется повторить выражение для расчета этих значений. Например, если бы элемент управления ОтпускнаяЦена (ExtendedPrice) рассчитывался по той же формуле в форме, т. е. в качестве источника данных для него стояло выражение:

= CCur([Заказано].[Цена] * [Количество] * (1 - [Скидка]) / 100) * 100

…в свойстве Данные (Control Source) для элемента управления ПромежуточнаяСумма (Order Subtotal) пришлось бы ввести выражение:

= Sum(CCur([Заказано].[Цена] * [Количество] * (1 - [Скидка]) / 100) * 100)

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

Иллюстрированный самоучитель по Microsoft Access 2002 › Создание составных форм › Создание вычисляемых полей для отображения итоговых значений
Рис. 9.49. Вычисляемое поле в главной форме "Заказы"

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.