使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

可以使用 DCount 函数来确定指定记录集中的记录数, ( 域 ) 。 在 Visual Basic for Applications (VBA) 模块、 宏 、查询表达式或 计算控件 中使用 DCount 函数。

例如,可以使用模块中的 DCount 函数返回 Orders 表中对应于特定日期下达的订单的记录数。

语法

DCount ( expr 、域 [, criteria] )

DCount 函数语法具有以下参数:

参数

说明

expr

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

必需。 一个字符串表达式,标识构成域的记录集。 它可以是表名,也可以是不需要参数的查询的查询名称。

条件

可选。 一个字符串表达式,用于限制对其执行 DCount 函数的数据范围。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件则 DCount 函数将针对整个域评估 expr条件中包含的任何字段也必须是域中的字段;否则,DCount 函数返回 Null。

备注

当你不需要知道记录的特定值时,使用 DCount 函数对域中的记录数进行计数。 尽管 expr 参数可以对字段执行计算,但 DCount 函数只是统计记录数。 expr 执行的任何计算的值都不可用。

需要指定条件以限制执行函数的数据范围时,请在计算控件中使用 DCount 函数。 例如,若要显示要寄送到加州的订单数,请将文本框的 ControlSource 属性设置为以下表达式:

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

如果只想在未指定任何限制的情况下对 域中 的所有记录进行计数,请使用 Count 函数。

提示 Count 函数已经过优化,可加快查询中的记录计数速度。 在查询表达式中使用 Count 函数而不是 DCount 函数,并设置可选条件以对结果强制实施任何限制。 当必须从代码模块或宏中或在计算控件中对域中的记录进行计数时,请使用 DCount 函数。

可以使用 DCount 函数对包含特定字段的记录数进行计数,这些字段不在窗体或报表所基于的记录源中。 例如,可以在基于 Products 表的窗体上的计算控件中显示 Orders 表中的订单数。

除非 expr 是星号 (*) 通配符,否则 DCount 函数不会对 expr 引用的字段中包含 Null 值的记录进行计数。 如果使用星号, DCount 函数将计算记录的总数,包括包含 Null 字段的记录。 以下示例计算 Orders 表中的记录数。

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

如果 domain 是具有 主键 的表,则还可以通过将 expr 设置为主键字段来计算记录总数,因为主键字段中永远不会有 Null

如果 expr 标识了多个字段,请使用串联运算符(即和号 (&) 或加法运算符 (+) )分隔字段名称。 如果使用和号分隔字段, 则 DCount 函数将返回包含任何所列字段中数据的记录数。 如果使用加法运算符, 则 DCount 函数仅返回包含所有列出的字段中数据的记录数。 以下示例演示每个运算符在与包含 ShipName () 的所有记录中的数据的字段和不包含任何数据 (ShipRegion) 的字段一起使用时的效果。

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

注意:  和号是用于执行字符串串联的首选运算符。 除非专门希望通过表达式传播 Null ,否则应避免对数值加法以外的任何内容使用加法运算符。

使用此函数时,不包括 对域中 记录的未保存更改。 如果希望 DCount 函数基于更改的值,必须先通过单击“数据”选项卡上的“记录”下的“保存记录”、将焦点移到另一条记录或使用 Updatee 方法保存更改。

查询示例

Expression

结果

SELECT DCount (“ProductID”,“ProductSales”,“Discount=0”) AS Expr1 FROM ProductSales GROUP BY DCount (“ProductID”,“ProductSales”,“Discount=0”) ;

返回表“ProductSales”的字段“ProductID”中的值计数,其中“Discount”值为“0”。

SELECT DCount (“ProductID”,“ProductSales”,“DateofSale=Date () -1”) AS YesterdaySales FROM ProductSales GROUP BY DCount (“ProductID”,“ProductSales”,“DateofSale=Date () -1”) ;

返回表“ProductSales”字段“ProductID”中的值计数,其中“DateofSale”是当前日期的前一天。

VBA 示例

注意: 下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。

以下函数返回指定发货日期后发往指定国家/地区的订单数。 域是 Orders 表。

Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

若要调用 函数,请在“即时”窗口中使用以下代码行:

:OrdersCount "UK", #1/1/96#

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×