使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

可以使用 DSum 函数计算指定记录集中一组值的总和, ( 域 ) 。 在 Visual Basic for Applications (VBA) 模块、 宏 、查询表达式或 计算控件 中使用 DSum 函数。

例如,可以在查询的计算字段表达式中使用 DSum 函数来计算特定员工在一段时间内的总销售额。 或者,可以使用计算控件中的 DSum 函数来显示特定产品的正在运行的销售额总和。

语法

DSum ( expr ,域 [, criteria] )

DSum 函数语法具有以下参数:

参数

说明

expr

必需。 一个表达式,用于标识要汇总其值的数值字段。 它可以是标识表或查询中的字段的 字符串表达式 ,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,可以在表中包括字段的名称、窗体上的控件、常量或函数。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。

必需。 一个字符串表达式,标识构成域的记录集。 它可以是表名,也可以是不需要参数的查询的查询名称。

条件

可选。 用于限制执行 DSum 函数的数据范围的字符串表达式。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件则 DSum 函数针对整个域评估 expr条件中包含的任何字段也必须是域中的字段;否则,DSum 函数返回 Null。


备注

如果没有记录满足 criteria 参数,或者域不包含任何记录, 则 DSum 函数返回 Null。

无论是在宏、模块、查询表达式还是计算控件中使用 DSum 函数,都必须仔细构造 criteria 参数,以确保正确计算它。

可以使用 DSum 函数在查询的 “条件” 行、查询表达式的计算字段或 更新查询 的 “更新到 ”行中指定条件。

注意: 可以在 总计查询 中的计算字段表达式中使用 DSumSum 函数。 如果使用 DSum 函数,则会在对数据进行分组之前计算值。 如果使用 Sum 函数,则会在计算字段表达式中的值之前对数据进行分组。

当需要显示窗体或报表的记录源之外的字段的一组值的总和时,你可能想要使用 DSum 函数。 例如,假设有一个窗体显示有关特定产品的信息。 可以使用 DSum 函数在计算控件中维护该产品的运行总销售额。

提示

如果需要在报表的控件中维护正在运行的总计,则可以使用该控件的 RunningSum 属性,前提是该控件所基于的字段包含在报表的记录源中。 使用 DSum 函数在窗体上维护正在运行的总和。

注意: 使用此函数时,不包括 对域中 记录的未保存更改。 如果希望 DSum 函数基于更改的值,必须先通过单击“开始”选项卡上“记录”组中的“保存记录”,将焦点移到另一条记录,或使用 Update 方法保存更改。

示例

在表达式中使用 DSum 函数    可以在更新查询的“更新到”行中使用域函数 (如 DSum) 。 例如,假设你想要在 Products 表中按产品跟踪当前销售额。 可以将名为 SalesSoFar 的新字段添加到 Products 表,并运行更新查询以计算正确的值并更新记录。 为此,请基于“产品”表创建新查询,然后在“ 设计 ”选项卡上的“ 查询类型 ”组中,单击“ 更新”。 将 SalesSoFar 字段添加到查询网格,并在 “更新到 ”行中键入以下内容:

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

运行查询时,Access 会根据订单详细信息表中的信息计算每个产品的销售额总额。 每个产品的销售额总和将添加到“产品”表中。

在 VBA 代码中使用 DSum    

注意: 下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。

以下示例汇总了运往英国的订单的“货运”字段中的值。 域是 Orders 表。 criteria 参数将生成的记录集限制为 ShipCountryRegion 等于 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#")

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×