Функцию DSum можно использовать для вычисления суммы набора значений в указанном наборе записей ( подмножество ). Используйте функцию DSum в модуле Visual Basic для приложений (VBA), макрос, выражении запроса или вычисляемый элемент управления.
Например, функцию DSum можно использовать в выражении вычисляемого поля запроса, вычисляющего объем продаж для конкретного сотрудника за определенный период времени. Функцию DSum также можно использовать в вычисляемом элементе управления для отображения текущей суммы продаж конкретного продукта.
Синтаксис
DSum ( выражение , подмножество [, условия] )
Аргументы функции DSum описаны ниже.
Аргумент |
Описание |
выражение |
Обязательный аргумент. Выражение, определяющее числовое поле, значения которого нужно просуммировать. Это может быть строковое выражение, которое определяет поле в таблице или запросе, либо выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля в таблице, элемента управления в форме, константы или функции. Выражение может включать в себя встроенную или пользовательскую функцию, но не другую агрегатную функцию по подмножеству или агрегатную функцию SQL. |
подмножество |
Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
условия |
Необязательный. Строковое выражение, используемое для ограничения диапазона данных, в котором выполняется функция DSum . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если условие опущено, функция DSum оценивает expr по всему домену. Любое поле, включенное в условия, также должно быть полем в домене; В противном случае функция DSum возвращает значение NULL. |
Замечания
Если ни одна из записей не соответствуют аргументу условия или подмножество не содержит записей, функция DSum возвращает значение NULL.
Где бы ни использовалась функция DSum — в макросе, модуле, выражении запроса или вычисляемом элементе управления — необходимо аккуратно задать условия, чтобы обеспечить ее правильное вычисление.
Функцию DSum можно использовать для указания условий в строке Условия запроса, в вычисляемом поле в выражении запроса или в строке Обновить дозапрос на обновление.
Примечание: Функцию DSum или Sum можно использовать в выражении вычисляемого поля в итоговый запрос. При использовании функции DSum значения вычисляются перед группировкой данных. При использовании функции Sum данные группируются перед вычислением значений в выражении поля.
Вы можете предпочесть функцию DSum, если нужно отобразить сумму набора значений из поля, не относящегося к источнику записей для формы или отчета. Например, у вас есть форма, в которой отображается информация о конкретном продукте. С помощью функции DSum вы можете отображать текущий объем продаж продукта в вычисляемом элементе управления.
Совет
Для отображения текущего суммарного значения в элементе управления отчета можно использовать свойство RunningSum этого элемента управления, если взятое за основу поле включено в источник записей для отчета. Используйте функцию DSum для отображения текущей суммы в форме.
Примечание: Несохраненные изменения записей в домене не включаются при использовании этой функции. Если вы хотите, чтобы функция DSum основывалась на измененных значениях, необходимо сначала сохранить изменения, щелкнув Сохранить запись в группе Записи на вкладке Главная , переместив фокус на другую запись или используя метод Update .
Примеры
Использование функции 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#")