Метод Application.DSum (Access)
Используйте функцию DSum для вычисления суммы набора значений в указанном наборе записей (домене).
Синтаксис
expression. DSum (expr, domain, criteria)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Expr | Обязательный | String | Выражение, идентифицирующее числовое поле, значения которого необходимо суммировать. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или выражение, выполняющее вычисление данных в этом поле. В expr можно включить имя поля в таблицу, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть встроенной или определяемой пользователем, но не может быть другой агрегатной или агрегатной функцией SQL. |
Домен | Обязательный | String | Строковое выражение, идентифицирующее набор записей, составляющих домен. Это может быть имя таблицы или имя запроса, который не требует параметра. |
Criteria | Необязательный | Variant | Необязательное строковое выражение, используемое для ограничения диапазона данных, на котором выполняется функция DSum . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если условие опущено, функция DSum оценивает expr по всему домену. Любое поле, включенное в условия, также должно быть полем в домене; В противном случае функция DSum возвращает значение NULL. |
Возвращаемое значение
Variant
Примечания
Например, можно использовать функцию DSum в выражении вычисляемого поля в запросе, чтобы вычислить общий объем продаж, выполненных конкретным сотрудником за определенный период времени. Или можно использовать функцию DSum в вычисляемом элементе управления для отображения запущенной суммы продаж для определенного продукта.
Если ни запись не удовлетворяет аргументу условия , либо домен не содержит записей, функция DSum возвращает значение NULL.
Независимо от того, используете ли вы функцию DSum в макросе, модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно создать аргумент условия , чтобы убедиться, что он будет правильно оценен.
Используйте функцию DSum , чтобы указать критерии в строке Условия запроса, в вычисляемом поле в выражении запроса или в строке Обновить до запроса на обновление.
Примечание.
Используйте функцию DSum или Sum в выражении вычисляемого поля в запросе итогов. При использовании функции DSum значения вычисляются перед группировкой данных. При использовании функции Sum данные группируются перед вычислением значений в выражении поля.
Функцию DSum может потребоваться использовать, если необходимо отобразить сумму набора значений из поля, которое отсутствует в источнике записей для формы или отчета. Например, предположим, что у вас есть форма, отображающая сведения о конкретном продукте. Функцию DSum можно использовать для поддержания запущенного общего объема продаж этого продукта в вычисляемом элементе управления.
Если необходимо сохранить итог выполнения в элементе управления в отчете, можно использовать свойство RunningSum этого элемента управления, если поле, на котором он основан, в источник записей отчета. Используйте функцию DSum для поддержания запущенной суммы в форме.
Пример
В следующем примере суммируются значения из поля Freight для заказов, отправляемых в Соединенное Королевство. Домен — это таблица Orders. Аргумент условия ограничивает результирующий набор записей теми, для которых ShipCountry равен Великобритании.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", "[ShipCountry] = 'UK'")
В следующем примере общая сумма вычисляется с помощью двух отдельных критериев. Обратите внимание, что в строковое выражение включаются одиночные кавычки (') и числовые знаки (#), поэтому при объединии строк строковый литерал будет заключен в одинарные кавычки, а дата будет заключена в числовые знаки.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountry] = 'UK' AND [ShippedDate] > #1-1-95#")
В следующих примерах показано, как использовать различные типы условий с функцией DSum .
' ***************************
' Typical Use
' Numerical values. Replace "number" with the number to use.
variable = DSum("[FieldName]", "TableName", "[Criteria] = number")
' Strings.
' Numerical values. Replace "string" with the string to use.
variable = DSum("[FieldName]", "TableName", "[Criteria]= 'string'")
' Dates. Replace "date" with the string to use.
variable = DSum("[FieldName]", "TableName", "[Criteria]= #date#")
' ***************************
' ***************************
' Referring to a control on a form
' Numerical values
variable = DSum("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)
' Strings
variable = DSum("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")
' Dates
variable = DSum("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
' ***************************
' ***************************
' Combinations
' Multiple types of criteria
variable = DSum("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
& " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
& " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
' Use two fields from a single record.
variable = DSum("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
' Expressions
variable = DSum("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
' Control Structures
variable = DSum("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
' ***************************
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.