Application.DCount 方法 (Access)

使用 DCount 函数可以确定指定记录集中的记录数, (域) 。

语法

表达式DCount (Expr条件)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
Expr 必需 String 用于标识要记录计数的字段的表达式。 它可以是标识表或查询中的字段的字符串表达式,也可以是对该字段中的数据进行计算的表达式。 在 expr 中,可以在表中包括字段的名称、窗体上的控件、常量或函数。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。
必需 字符串 一个字符串表达式,标识构成域的记录集。 可以是表名称或不需要参数的查询的查询名称。
Criteria 可选 Variant 可选的字符串表达式,用于限制作为 DCount 函数执行对象的数据的范围。 例如,criteria 通常等同于 SQL 表达式中的 WHERE 子句,没有单词 WHERE。 如果省略了 criteria,那么 DCount 函数将对整个域进行 expr 评估。 条件中包含的任何字段也必须是域中的字段;否则,DCount 函数返回 Null

返回值

Variant

备注

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

当无需知道记录的特定值的时候,可以使用 DCount 函数来计算域中的记录数。 尽管 expr 参数能够对字段执行计算,但 DCount 函数仅计算记录数。 expr 执行的任何计算的值都不可用。

如果需要指定一个条件来限制对其执行函数的目标数据的范围,可以在计算控件中使用 DCount 函数。 例如,若要显示运送到加利福尼亚的订单数,请将文本框的 ControlSource 属性设置为下列表达式:

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

如果只想在未指定任何限制的情况下对 域中 的所有记录进行计数,请使用 Count 函数。 Count 函数已经过优化,以加快查询中的记录计数。 在查询表达式中使用 Count 函数,而不是 DCount 函数,并设置可选标准来强制执行对结果的任何限制。

当必须从代码模块或宏中或者经计算的控件中计算某个域的记录时,请使用 DCount 函数。

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

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

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")

注意

“And”符是执行字符串连接时的首选运算符。 在除数值相加以外的其他任何情况下,应尽量避免使用加法运算符,除非特别需要在表达式中传播 Nulls 值。

示例

下面的函数返回在特定发货日期之后发送到指定国家或地区的订单数量。 域为“Orders”表。

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

以下示例演示如何在“DCount”函数中使用各种类型的条件。

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DCount("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DCount("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DCount("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DCount("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DCount("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DCount("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DCount("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DCount("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DCount("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DCount("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。