设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3249|回复: 7
打印 上一主题 下一主题

[宏/菜单/工具栏] 在access数据库中如何进行数据的统计????

[复制链接]
跳转到指定楼层
1#
发表于 2004-1-16 18:26:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我建了一个公司产品信息的管理数据库,但是在数据库中要求统计一些数据(具体的数据个数),并且还要计算一些相关数据,并且反映在生成的报表中,请问该如何处理啊!谢谢帮帮忙啊!很急啊!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2004-1-16 18:30:00 | 只看该作者
建议看一下帮助里的域函数DCOUNT,DSUM等,以及在查询中用合计的方法。
3#
 楼主| 发表于 2004-1-17 02:09:00 | 只看该作者
谢谢!
4#
 楼主| 发表于 2004-1-17 02:17:00 | 只看该作者
不好意思啊!!在帮助里怎么找不到啊??????????望告之!!!!谢谢!!
5#
发表于 2004-1-17 08:20:00 | 只看该作者
DSum 函数
        

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

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

语法

DSum(expr, domain[, criteria])

The 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 方法。
6#
发表于 2004-1-17 08:21:00 | 只看该作者
DCount 函数
        

Dcount 函数可用于确定特定记录集中的记录数(一个域)。可以在 Visual Basic、宏、查询表达式,或计算控件中使用 DCount 函数。

例如,可以在模块中使用 Dcount 函数,以返回“订单”表中对应于特定日期的订单数。

语法

DCount(expr, domain[, criteria])

DCount 函数具有下列参数:

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


说明

在不需要知道记录特定值的时候,可以使用 DCount 函数来计算域中的记录数。虽然 expr 参数可以在字段上执行计算,但 DCount 函数只返回记录数。任何由 expr 执行计算所得的值都是不可用的。

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

当需指定准则来限制函数执行的数据范围时,应在计算控件中使用 DCount 函数。例如,要显示运往“华北”的订单数,可将文本框的 ControlSource 属性设置为如下表达式:

=DCount("[订单ID]", "订单", "[货主地区] = '华北'")如果只简单地统计 domain 中的所有记录而不指定任何限制,则可以使用 Count 函数。

提示   Count 函数是经过优化的,可以加快在查询中对记录数进行统计的速度。所以应在查询表达式中使用 Count 函数来代替 DCount 函数,并设置可选的准则以实施对结果的限制。如果必须从代码模块、宏或计算控件中对域中的记录进行计数时,应该使用 DCount 函数。

使用 DCount 函数可以计算含有窗体或报表数据源以外的特殊字段的记录数目。例如,在基于“产品”表的窗体中的计算控件中可以显示“订单”表中的订单数。

DCount 函数在计数时不包括由 expr 引用的字段中含有 Null 值的记录,除非 expr 参数为星号(*)通配符。在使用星号时, DCount 函数将计算所有记录的总数,包括含有 Null 字段的记录。以下示例将计算“订单”表中的记录数。

intX = DCount("*", "Orders")如果 domain 是一个包含主键的表,也可以将 expr 设置为主键字段来计算记录的总数,因为主键字段不可能为 Null。

如果 expr 指定多个字段,应使用连接运算符分隔各字段名,即连字符(&)或加号运算符(+)。如果使用连字符分隔字段,Dcount 函数将返回在列出的任一字段中含有数据的记录数。如果使用加号运算符,Dcount 函数将只返回在所有列出字段中都含有数据的记录数。以下示例演示了以这两种运算符连接在所有记录中均包含数据的字段(货主名称)和不包含数据的字段(货主地区)的效果。

intW = DCount("[ShipName]", "Orders")          ' Returns 831.
intX = DCount("[ShipRegion]", "Orders")          ' Returns 323.
intY = DCount("[ShipName] + [ShipRegion]", _
     "Orders")      ' 返回 323。
intZ = DCount("[ShipName] & [ShipRegion]", _
     "Orders")      ' 返回 831。注意   连字符在执行字符串连接时是首选的运算符。在除加法以外的其他情况下应尽量避免使用加法运算符,除非特地需要在表达式中产生 Nulls 值。

使用该函数时, domain 记录中未保存的更改将不包括在内。如果要让 DCount 函数以更改后的数据为基础,必须先保存更改。方法是单击“记录”菜单上的“保存记录”命令,或是将焦点移动到另一个控件,或使用 Update 方法。
7#
 楼主| 发表于 2004-1-17 16:44:00 | 只看该作者
谢谢,非常感谢!!!!
8#
发表于 2004-1-18 01:06:00 | 只看该作者
在查询中用合计的方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 16:42 , Processed in 0.115753 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表