Функция DSum

Функцию DSum можно использовать для вычисления суммы набора значений в указанном наборе записей ( подмножество ). Используйте функцию DSum в модуле Visual Basic для приложений (VBA), макрос, выражении запроса или вычисляемый элемент управления.

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

Синтаксис

DSum ( выражение , подмножество [, условия] )

Аргументы функции DSum описаны ниже.

Аргумент

Описание

выражение

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

подмножество

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

условия

Необязательный. Строковые выражения, используемые для ограничения диапазона данных, к которым применяется функция DSum. Например, условия часто эквивалентны предложению WHERE в SQL, а не слово WHERE. Если этот критерий опущен, функция DSum оценивает вырачение для всего домена. Любое поле, включенное в условия отбора, также должно быть полем домена; в противном случае функция DSum возвращает NULL.


Замечания

Если ни одна из записей не соответствуют аргументу условия или подмножество не содержит записей, функция DSum возвращает значение NULL.

Где бы ни использовалась функция DSum — в макросе, модуле, выражении запроса или вычисляемом элементе управления — необходимо аккуратно задать условия, чтобы обеспечить ее правильное вычисление.

С помощью функции DSum можно задать условия в строке "Условия" запроса, вычисляемом поле в выражении запроса или в строке "Обновление" запрос на обновление.

Примечание: Функцию DSum или Sum можно использовать в выражении вычисляемом поле в итоговый запрос. При использовании функции DSum значения вычисляются перед группировкой данных. При использовании функции SUM данные группются перед тем, как вычисляются значения в выражении поля.

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

Совет

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

Примечание: Несмеченные изменения записей в домене не включаются при использовании этой функции. Если вы хотите, чтобы функция DSum учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку "Сохранить запись" в группе "Записи" на вкладке "Главная", перемещая фокус на другую запись или используя метод обновления.

Примеры

Использование функции DSum в выражении.    Функцию по подмножеству (например, DSum) можно использовать в строке Обновление запроса на обновление. Предположим, вам нужно отслеживать текущие продажи по продуктам в таблице "Продукты". Вы можете добавить в таблицу "Продукты" новое поле "ТекущиеПродажи" и выполнить запрос на обновление, чтобы вычислить правильные значения и обновить записи. Для этого создайте новый запрос на основе таблицы "Продукты" и на вкладке Конструктор в группе Тип запроса выберите команду Обновить. Добавьте поле "ТекущиеПродажи" в бланк запроса и введите в строке Обновление следующее:

DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])

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

Использование функции DSum в коде VBA    

Примечание: В приведенных ниже примерах показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В этом примере суммируются значения из поля "Поставка" (Freight) для заказов, доставленных в Великобританию. Подмножеством является таблица "Заказы" (Orders). Аргумент условия ограничивает результирующий набор теми записями, в которых в качестве региона доставки указано Соединённое Королевство (UK).

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")

В следующем примере для вычисления итогового значения применяются два отдельных условия. Обратите внимание на то, что в строковом выражении используются одинарные кавычки (') и знаки номера (#), так что при соединении строк строковый литерал заключается в одинарные кавычки, а дата — в символы решетки.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")

Нужна дополнительная помощь?

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×