全部显示

DCount 方法

       

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

expression.DCount(Expr, Domain, Criteria)

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

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

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

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

说明

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

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

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

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

如果只想简单地统计 domain 中的所有记录而不指定任何限制,则可以使用 Count 函数。

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

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

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

intX = DCount("*", "Orders")

如果 domain 是一个包含主键的表,也可以通过将 expr 设为主键字段来计算记录的总数,因为主键字段中不可能有 Null 值。

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

intW = DCount("[ShipName]", "Orders")          ' Returns 831.
intX = DCount("[ShipRegion]", "Orders")          ' Returns 323.
intY = DCount("[ShipName] + [ShipRegion]", _
     "Orders")      ' Returns 323.
intZ = DCount("[ShipName] & [ShipRegion]", _
     "Orders")      ' Returns 831.

注意   “And”符在执行字符串连接时是首选的运算符。在除加法以外的其他情况下应尽量避免使用加法运算符,除非特别需要在表达式中产生 Null 值。

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