Функция DSum — Служба поддержки Майкрософт
Функцию DSum можно использовать для вычисления суммы набора значений в указанном наборе записей ( подмножество ). Используйте функцию DSum в модуле Visual Basic для приложений (VBA), макрос, выражении запроса или вычисляемый элемент управления.
Например, функцию DSum можно использовать в выражении вычисляемого поля запроса, вычисляющего объем продаж для конкретного сотрудника за определенный период времени. Функцию DSum также можно использовать в вычисляемом элементе управления для отображения текущей суммы продаж конкретного продукта.
Синтаксис
DSum ( выражение , подмножество [, условия] )
Аргументы функции DSum описаны ниже.
|
Описание |
выражение |
Обязательный аргумент. Выражение, определяющее числовое поле, значения которого нужно просуммировать. Это может быть строковое выражение, которое определяет поле в таблице или запросе, либо выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля в таблице, элемента управления в форме, константы или функции. Выражение может включать в себя встроенную или пользовательскую функцию, но не другую агрегатную функцию по подмножеству или агрегатную функцию SQL. |
подмножество |
Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
условия |
Необязательный. Строковые выражения, используемые для ограничения диапазона данных, к которым применяется функция DSum. Например, условия часто эквивалентны предложению WHERE в SQL, а не слово WHERE. Если этот критерий опущен, функция DSum оценивает вырачение |
Замечания
Если ни одна из записей не соответствуют аргументу условия или подмножество не содержит записей, функция DSum возвращает значение NULL.
Где бы ни использовалась функция DSum — в макросе, модуле, выражении запроса или вычисляемом элементе управления — необходимо аккуратно задать условия, чтобы обеспечить ее правильное вычисление.
С помощью функции DSum можно задать условия в строке «Условия» запроса, вычисляемом поле в выражении запроса или в строке «Обновление» запрос на обновление.
Примечание: Функцию DSum или Sum можно использовать в выражении вычисляемом поле в итоговый запрос. При использовании функции DSum значения вычисляются перед группировкой данных. При использовании функции SUM данные группются перед тем, как вычисляются значения в выражении поля.
Вы можете предпочесть функцию DSum, если нужно отобразить сумму набора значений из поля, не относящегося к источнику записей для формы или отчета. Например, у вас есть форма, в которой отображается информация о конкретном продукте. С помощью функции DSum вы можете отображать текущий объем продаж продукта в вычисляемом элементе управления.
Совет
Для отображения текущего суммарного значения в элементе управления отчета можно использовать свойство RunningSum этого элемента управления, если взятое за основу поле включено в источник записей для отчета.
Примечание: Несмеченные изменения записей в домене не включаются при использовании этой функции. Если вы хотите, чтобы функция DSum учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку «Сохранить запись» в группе «Записи» на вкладке «Главная», перемещая фокус на другую запись или используя метод обновления.
Примеры
Использование функции DSum в выражении. Функцию по подмножеству (например, DSum) можно использовать в строке Обновление запроса на обновление. Предположим, вам нужно отслеживать текущие продажи по продуктам в таблице «Продукты». Вы можете добавить в таблицу «Продукты» новое поле «ТекущиеПродажи» и выполнить запрос на обновление, чтобы вычислить правильные значения и обновить записи. Для этого создайте новый запрос на основе таблицы «Продукты» и на вкладке Конструктор в группе Тип запроса выберите команду Обновить. Добавьте поле «ТекущиеПродажи» в бланк запроса и введите в строке Обновление следующее:
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
При выполнении запроса Access вычисляет общий объем продаж для каждого продукта, исходя из данных таблицы «Сведения о заказах» (Order Details). Сумма продаж для каждого продукта добавляется в таблицу «Продукты».
Использование функции DSum в коде 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#")
Метод Application.DSum (Access) | Microsoft Learn
- Статья
- Чтение занимает 3 мин
Используйте функцию 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. Аргумент
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 и обратная связь.
Функция DSum — служба поддержки Майкрософт
Доступ
Выражения
Функции домена
Функции домена
Функция DSum
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Дополнительно…Меньше
Вы можете использовать функцию DSum для вычисления суммы набора значений в указанном наборе записей (домен). Используйте Функция DSum в модуле Visual Basic для приложений (VBA), макрос, выражение запроса или вычисляемый элемент управления.
Например, вы можете использовать функцию DSum в выражении вычисляемого поля в запросе, чтобы вычислить общий объем продаж, сделанных конкретным сотрудником за определенный период времени. Или вы можете использовать функцию DSum в вычисляемом элементе управления, чтобы отобразить текущую сумму продаж для определенного продукта.
Синтаксис
ДСумма ( выражение , домен [, критерии ] )
Синтаксис функции DSum имеет следующие аргументы:
Аргумент | Описание |
выражение | Обязательно. Выражение, идентифицирующее числовое поле, значения которого вы хотите суммировать. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или это может быть выражение, выполняющее вычисление данных в этом поле. В expr можно включить имя поля в таблице, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть либо встроенной, либо определяемой пользователем, но не агрегатной функцией другого домена или агрегатной функцией SQL. |
домен | Требуется. Строковое выражение, идентифицирующее набор записей, составляющих домен. Это может быть имя таблицы или имя запроса для запроса, не требующего параметра. |
критерии | Дополнительно. Строковое выражение, используемое для ограничения диапазона данных, для которых Функция DSum выполнена. Например, критерий часто эквивалентен предложению WHERE в выражении SQL без слова WHERE. Если критерий опущен, функция DSum оценивает expr по всему домену. Любое поле, включенное в критерий , также должно быть полем в домене ; в противном случае функция DSum возвращает значение Null. |
Замечания
Если ни одна запись не удовлетворяет аргументу условия или если домен не содержит записей, функция DSum возвращает значение Null.
Независимо от того, используете ли вы функцию DSum в макросе, модуле, выражении запроса или вычисляемом элементе управления, вы должны тщательно сконструировать аргумент условия , чтобы убедиться, что он будет оценен правильно.
Вы можете использовать Функция DSum для указания критериев в строке Criteria запроса, в вычисляемом поле выражения запроса или в строке Update To запроса на обновление.
Примечание. Вы можете использовать функцию DSum или Sum в выражении вычисляемого поля в итоговом запросе. Если вы используете функцию DSum , значения вычисляются перед группировкой данных. Если вы используете функцию Sum , данные группируются до того, как будут оценены значения в выражении поля.
Возможно, вы захотите использовать функцию DSum , когда вам нужно отобразить сумму набора значений из поля, которого нет в источнике записей для вашей формы или отчета. Например, предположим, что у вас есть форма, которая отображает информацию о конкретном продукте. Вы можете использовать функцию DSum для ведения промежуточной суммы продаж этого продукта в вычисляемом элементе управления.
наконечник
Если вам нужно поддерживать промежуточный итог в элементе управления отчета, вы можете использовать свойство RunningSum этого элемента управления, если поле, на котором он основан, включено в источник записи для отчета. Используйте функцию DSum для поддержания текущей суммы в форме.
Примечание. Несохраненные изменения в записях в домене не учитываются при использовании этой функции. Если вы хотите, чтобы функция DSum основывалась на измененных значениях, вы должны сначала сохранить изменения, нажав Сохранить запись в группе Записи на вкладке Главная , переместив фокус на другую запись или используя метод Обновление .
Примеры
Используйте функцию DSum в выражении Вы можете использовать функцию предметной области (например, DSum ) в строке Обновить до запроса на обновление. Например, предположим, что вы хотите отслеживать текущие продажи по продуктам в таблице «Продукты». Вы можете добавить новое поле с именем SalesSoFar в таблицу Products и запустить запрос на обновление, чтобы вычислить правильные значения и обновить записи. Для этого создайте новый запрос на основе таблицы Товары и На вкладке «Проект » в группе Тип запроса щелкните Обновить . Добавьте поле SalesSoFar в сетку запроса и введите в строке Update To следующее:
DSum("[Количество]*[Цена]", "Сведения о заказе", _
"[ProductID] = "& [ProductID])
При выполнении запроса Access вычисляет общую сумму продаж для каждого продукта на основе информации из таблицы сведений о заказе. Сумма продаж по каждому продукту добавляется в таблицу «Товары».
Использовать DSum в коде VBA
Примечание. В следующих примерах показано использование этой функции в модуле Visual Basic для приложений (VBA). Для получения дополнительных сведений о работе с VBA выберите Справочник разработчика в раскрывающемся списке рядом с Поиск и введите одно или несколько условий в поле поиска.
В следующем примере суммируются значения из поля Freight для заказов, отправленных в Соединенное Королевство. Домен представляет собой таблицу заказов. аргумент критериев ограничивает результирующий набор записей теми, для которых ShipCountryRegion равен UK.
Dim curX как валюта
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
В следующем примере вычисляется итог с использованием двух отдельных критериев. Обратите внимание, что в строковое выражение включены одинарные кавычки (‘) и знаки числа (#), поэтому при объединении строк строковый литерал заключается в одинарные кавычки, а дата — в знаки фунта.
Dim curX как валюта
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")
Метод Application.DSum (Доступ) | Microsoft Learn
- Статья
- 4 минуты на чтение
Используйте функцию DSum для вычисления суммы набора значений в указанном наборе записей (домен).
Синтаксис
выражение . DSum ( Expr , Domain , Criteria )
выражение Переменная, представляющая Application объект.
Параметры
Имя | Требуется/дополнительно | Тип данных | Описание |
---|---|---|---|
Выражение | Требуется | Строка | Выражение, идентифицирующее числовое поле, значения которого вы хотите суммировать. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или это может быть выражение, выполняющее вычисление данных в этом поле. В expr вы можете включить имя поля в таблице, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть как встроенной, так и определяемой пользователем, но не агрегатной функцией другого домена или агрегатной функцией SQL. |
Домен | Требуется | Строка | Строковое выражение, определяющее набор записей, составляющих домен. Это может быть имя таблицы или имя запроса для запроса, не требующего параметра. |
Критерии | Дополнительно | Вариант | Необязательное строковое выражение, используемое для ограничения диапазона данных, для которых выполняется функция DSum . Например, критерий часто эквивалентен предложению WHERE в выражении SQL без слова WHERE. Если критерий опущен, функция DSum оценивает expr по всему домену. Любое поле, включенное в критерии , также должно быть полем в домене 9 .0269 ; в противном случае функция DSum возвращает Null . |
Возвращаемое значение
Variant
Например, вы можете использовать функцию DSum в выражении вычисляемого поля в запросе, чтобы вычислить общий объем продаж, сделанных конкретным сотрудником за определенный период времени. Или вы можете использовать функцию DSum в вычисляемом элементе управления, чтобы отобразить текущую сумму продаж для определенного продукта.
Если ни одна запись не удовлетворяет аргумент критерия или, если домен не содержит записей, функция DSum возвращает Null .
Независимо от того, используете ли вы функцию DSum в макросе, модуле, выражении запроса или вычисляемом элементе управления, вы должны тщательно сконструировать аргумент критерия , чтобы обеспечить его правильную оценку.
Используйте функцию DSum , чтобы указать критерии в строке Criteria запроса, в вычисляемом поле в выражении запроса или в Обновить до строки запроса на обновление.
Примечание
Используйте функцию DSum или Sum в выражении вычисляемого поля в итоговом запросе. Если вы используете функцию DSum , значения вычисляются перед группировкой данных. Если вы используете функцию Sum , данные группируются до того, как будут оценены значения в выражении поля.
Вы можете использовать функцию DSum , когда вам нужно отобразить сумму набора значений из поля, которого нет в источнике записи для вашей формы или отчета. Например, предположим, что у вас есть форма, которая отображает информацию о конкретном продукте. Вы можете использовать Функция DSum для ведения промежуточной суммы продаж этого продукта в вычисляемом элементе управления.
Если вам необходимо поддерживать промежуточный итог в элементе управления отчета, вы можете использовать свойство RunningSum этого элемента управления, если поле, на котором он основан, включено в источник записи для отчета. Используйте функцию DSum для поддержания текущей суммы в форме.
Пример
В следующем примере суммируются значения из Freight 9Поле 0263 для заказов, отправляемых в Великобританию. Домен представляет собой таблицу заказов. Аргумент критериев ограничивает результирующий набор записей теми, для которых ShipCountry равно UK.
Dim curX как валюта curX = DSum("[Freight]", "Orders", "[ShipCountry] = 'UK'")
В следующем примере вычисляется итог с использованием двух отдельных критериев. Обратите внимание, что в строковое выражение включены одинарные кавычки (‘) и знаки числа (#), поэтому при объединении строк строковый литерал будет заключен в одинарные кавычки, а дата будет заключена в знаки числа.
Dim curX как валюта curX = DSum("[Грузовые перевозки]", "Заказы", _ "[ShipCountry] = 'UK' AND [ShippedDate] > #1-1-95#")
В следующих примерах показано, как использовать различные типы критериев с функцией DSum .
' ******************************* ' Типичное использование 'Числовые значения. Замените «число» на число, которое нужно использовать. переменная = DSum("[FieldName]", "TableName", "[Criteria] = число") ' Струны. 'Числовые значения. Замените «строка» строкой для использования. переменная = DSum("[ИмяПоля]", "ИмяТаблицы", "[Критерии]='строка'") ' Даты. Замените «дата» строкой для использования. переменная = DSum("[FieldName]", "TableName", "[Criteria]= #date#") '****************************** '****************************** ' Обращение к элементу управления на форме ' Числовые значения переменная = DSum("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName) ' Строки переменная = DSum("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'") ' Даты переменная = DSum("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#") '****************************** '****************************** ' Комбинации ' Несколько типов критериев переменная = DSum("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _ & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _ & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#") ' Использовать два поля из одной записи.