Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

Application.DSum 方法 (Access)

时 间:2021-10-24 19:59:08
作 者:杨雪   ID:42182  城市:南京
摘 要:可以使用 DSum 函数计算域记录集内指定记录 (一组) 。
正 文:

语   法:
表达式.DSum (Expr、Domain、Criteria )
expression:表示 Application 对象的变量。

参   数:
名称          必需/可选          数据类型               说明
Expr          必需                  String                  表达式,用于标识要对其值作总计的字段。 它可以是标识表或查询中字段的字符串表达式,也可以是执行该字段中数据的计算的表达式。 在 expr 中,可以包含表中字段的名称、窗体上的控件、常量或函数。 如果 expr 包含一个函数,它可以是内置函数或用户定义的函数,但不能是另一个域聚合函数SQL聚合函数。
Domain      必需                  String                 字符串表达式,用于标识组成域的记录集。 可以是表名称或不需要参数的查询的查询名称。
Criteria      可选                   Variant               可选字符串表达式,用于限制 DSum 函数的执行对象的数据取值范围。 例如,criteria 通常是相当于 SQL 表达式中的 Where 子句位置,但是不使用 Where一词。 如果省略 criteria,DSum 函数将对整个域计算 expr。 任何包含在 criteria 中的字段必须也必须是 domain 中的字段;否则 DSum 函数将返回 Null。


返回值:
Variant


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

如果没有记录满足 criteria 参数,或者 domain 不包含记录 ,DSum 函数将返回 Null。
无论是在宏、模块、查询表达式中,还是在计算控件中使用 DSum 函数,都必须仔细构建 criteria 以确保它能正确地计算。
可以使用 DSum 函数在查询的 "条件"行、查询表达式的计算字段或更新查询的"更新到"行中指定条件。

可以在总计查询的计算字段表达式中使用 DSum 或 Sum 函数。 如果使用 DSum 函数,将在数据分组之前计算总计值。 如果使用 Sum 函数,则将先分组再对字段表达式中值进行求和。
当需要显示窗体或报表的记录源外字段中的一组值的总和时,您可能需要使用 DSum 函数。 例如,假设您有一个显示特定产品相关信息的窗体。 可以使用 DSum 函数在计算控件中维护该产品的总销售额。
如果需要在报表上的控件中维护运行总计,则当报表的记录源中包含该控件所基于的字段时,可以使用该控件的 RunningSum 属性。 使用 DSum 函数可维护窗体上的运行总和。


示   例:
下面的示例对发往英国的订单的 Freight 字段中的值进行总计。 域为“Orders”表。 criteria 参数将记录集的结果限制为“ShipCountry”等于 UK 的记录。


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 函数 一同使用。


' ***************************
    ' 典型的使用
    ' 数值。用要用的数字代替“number”。
    variable = DSum("[FieldName]", "TableName", "[Criteria] = number")

    ' 字符串。将"string"替换为要使用的字符串。
    variable = DSum("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' 日期。用要使用的字符串替换"date"。
    variable = DSum("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' 指的是窗体上的控件
    ' 数值
    variable = DSum("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' 字符
    variable = DSum("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' 日期
    variable = DSum("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' 多种类型
    variable = DSum("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' 使用单个记录中的两个字段.
    variable = DSum("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' 表达式
    variable = DSum("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' 控制结构
    variable = DSum("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************


Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助