Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • Access如何判断字符串..
  • 将15的身份证号升码为18..
  • 如何在OFFICE各软件保..
  • 求某月的最后一天的函数
  • 非绑定窗体快速输入法
  • 怎样取得一个字符串在另外一..

最新文章

  • Access或VB VBA..
  • 关于VBA的0、""(空字..
  • Access导出函数Out..
  • Access日期与日期区间..
  • RecordSource ..
  • Access子窗体事件控制..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 模块/函数/VBA/API/系统 > VBA基础
VBA基础

Sum()和Dsum()的区别

DSum 函数
请参阅 特性
DSum 函数用于计算指定记录集(一个域)中的一组值的总和。可以在 Visual Basic、宏、查询表达式或计算控件中使用 DSum 函数。

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

DSum(expr, domain, [criteria])

DSum 函数具有以下参数:

参数 说明
expr 表达式,用于标识要对其值作总计的字段。可以是指向表或查询中字段的字符串表达式,也可以是以该字段中的数据进行计算的表达式。在 expr 中可以包括表中字段的名称、窗体上的控件、常量或函数。如果 expr 包含函数,那么它可以是内置的,也可以是用户定义的,但不能是另一个域聚合函数或 SQL 聚合函数。
domain 字符串表达式,代表组成域的记录集。可以是表名称或不需要参数的查询的查询名称。
criteria 可选的字符串表达式,用于限制 DSum 函数执行的数据范围。例如,criteria 通常等价于 SQL 表达式中的 WHERE 子句,只是不含 WHERE 关键字。如果忽略 criteria,DSum 函数将在整个域范围内计算 expr。任何包含在 criteria 中的字段必须同时也是 domain 中的字段,否则 Dsum 函数将返回 Null。


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

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

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

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

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

提示   如果要保持报表控件中的运行总和,当控件所基于的字段位于报表的记录源中时,可以使用控件的 RunningSum 属性,DSum 函数还可用来保持窗体上的运行总和。

注意   使用该函数时,对 domain 中的记录未保存的更改将不包括在内。如果要让 DSum 函数基于更改后的数据,必须先保存更改。方法是单击“记录”菜单上的“保存记录”,或者将焦点移动到另一个记录上,或使用 Update 方法。

示例
下面的示例计算运往英国的订单的“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#")
可以在更新查询的“更新到”行中使用域函数。例如,要跟踪“Products”表中产品的当前销售情况,可以将一个名为 SalesSoFar 的新字段添加到“Products”表,并执行一个更新查询来计算正确的值并更新记录。首先基于“Products”表创建一个新查询,单击“查询”菜单上的“更新查询”命令。将 SalesSoFar 字段添加到查询网格,并将以下内容输入到“更新到”行中:

DSum("[Quantity]*[UnitPrice]", "Order Details", "[ProductID] = " _
    & [ProductID])
在执行查询时,Microsoft access 将根据“Order Details”表中的信息计算每种产品的销售总量。每种产品的销售总和添加到“Products”表中。
 
Sum 函数
返回包含在指定查询字段中一组值的总计。

语法
Sum(expr)

其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。 expr中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL 合计函数)。

说明
Sum 函数求字段中值的总和。例如,可用 Sum 函数计算货运的总费用。

Sum 函数会忽略包含 Null 字段的记录。下列示例显示如何计算产品的 UnitPrice (单价)及 Quantity (数量)字段的合计:

SELECT

Sum(UnitPrice * Quantity)

AS [Total Revenue] FROM [Order Details];


可以在一个查询表达式之中使用 Sum 函数。你也可以在具备 SQL 特性的 QueryDef 对象中或在创建基于SQL查询的 Recordset 对象时使用这一表达式。
Sum 函数示例

此示例使用订单表计算对于送货至英国订单的合计销售额。

此示例调用过程 EnumFields 过程,且可以在 SELECT 语句示例中找到该过程。

Sub SumX()


    Dim dbs As Database, rst As Recordset


    ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。

    Set dbs = OpenDatabase("Northwind.mdb")

    ' 对运费超过 $100 的订单,


    '对于送货到英国的订单计算总销售额。

    '

    Set rst = dbs.OpenRecordset("SELECT" _

        & " Sum(UnitPrice*Quantity)" _

        & " AS [Total UK Sales] FROM Orders" _

        & " INNER JOIN [Order Details] ON" _

        & " Orders.OrderID = [Order Details].OrderID" _

        & " WHERE (ShipCountry = '英国');")


    ' populateRecordset。

    rst.MoveLast


    ' 调用 EnumFields 来打印记录集的内容。

    '传递记录集对象和要求的字符宽度。

    '

    EnumFields rst, 15

   

    dbs.Close


End Sub
发布人:Henry D.…-网络  
分享到:
点击次数:  更新时间:2009-04-20 14:00:02  【打印此页】  【关闭】
上一条:TreeView控件使用教程4  下一条:TreeView控件使用教程3



相关文章

  • • Access或VB VBA判断数组的值是否为空的几种方法
  • • 关于VBA的0、""(空字符串)、Null、Empty、与 Nothing 的区别
  • • Access导出函数OutPutto解释
  • • Access日期与日期区间的筛选
  • • RecordSource SourceObject ControlSource属性的区别
  • • Access子窗体事件控制父窗体
  • • 事件​change和AfterUpdate的区别
  • • 代码修改完善方法示例(初学者必读)

热门文章

  • [2017-04-17] 自定义提取数据的前缀access数据库
  • [2013-09-07] Access中Application与Docmd对象Quit方法的异同access数据库
  • [2005-03-24] 别让MsgBox中断了一些Background的处理作业access数据库
  • [2017-07-29] Access导出函数OutPutto解释access数据库
  • [2009-02-26] ACCESS-VBA编程 第六章 ACCESS查询1access数据库
  • [2013-09-03] Access方法Requery和Refresh的区别access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn