Поделиться через


Метод 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 и обратная связь.