全部显示

DSum 方法

       

使用 DSum 函数可以计算指定记录集(一个)中一组值的总和。可以在 Visual Basic、、查询表达式或计算控件中使用 DSum 函数。Variant 型。

expression.DSum(Expr, Domain, Criteria)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

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

Domain  必需 String 型。字符串表达式,用于标识组成域的记录集。可以是一个表名称或查询名称。

Criteria  可选 Variant 型。可选的字符串表达式,用于限制 DSum 函数执行的数据范围。例如,criteria 通常等价于 SQL 表达式中的 WHERE 子句,只是不含 WHERE 关键字。如果省略 criteriaDSum 函数将在整个域范围内计算 expr。任何包含在 criteria 中的字段必须同时包含在 domain 中,否则 DSum 函数将返回 Null

说明

例如,可以在查询的计算字段表达式中使用 DSum 函数来计算一段时期某个特定雇员的总销售量。也可以在计算控件中使用 DSum 函数来显示特定产品的运行时销售总和。

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

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

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

注意   可以在总计查询的计算字段表达式中使用 DSumSum 函数。如果使用 DSum 函数,是先计算总计值后对数据分组。如果使用 Sum 函数,则是先对数据分组而后再计算字段表达式中的值。

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

提示   如果需要维护报表上控件中的运行时总和,且控件所基于的字段位于报表的记录源中,则可以使用该控件的 RunningSum 属性。DSum 函数用于维护窗体上的运行时总和。

注意   使用这些函数时,对 domain 中记录所作的未保存更改将不包括在内。如果要让 DSum 函数基于更改后的值,则必须先保存更改,方法是:单击“文件”菜单上的“保存记录”,将焦点移到另一条记录上,或者使用 Update 方法。

示例

下面的示例返回运往英国的订单的“运费”字段的总计值。域为“订单”表。criteria 参数将记录集的结果限制为“货主国家/地区”等于 UK 的记录。

Dim curX As Currency
curX = DSum ("[Orders]![Freight] ", "[Orders]", "[ShipCountry] = 'UK'")