Microsoft Access SQL) (Count 函数

适用于:Access 2013 | Access 2016

计算查询所返回的记录数

语法

Count(expr)

expr 占位符代表字符串表达式(它标识了包含要计算的数据的字段),或者代表使用该字段的数据执行计算的表达式。 expr 中的操作数可包括表字段名或函数名(可以是固有函数或用户定义的函数,但不能是其他 SQL 聚合函数)。 可以计算包括文本在内的任何类型数据。

备注

使用 Count 对基础查询中的记录数进行计数。 例如,可以使用 Count 来计算发往特定国家或地区的订单数。

尽管 expr 能够对字段执行计算,但是 Count 仅仅计算出记录的数目。 记录中所存储的数值类型与计算无关。

Count 函数不计算具有 Null 字段的记录,除非 expr 是星号 (*) 通配符。 如果使用了星号,Count 会计算出包括包含 Null 字段在内的所有记录的总数。 计数 ( * ) 计数 ( [ 列名 ] ) 要快得多。 不要用引号 (' ') 将星号括起来。

以下示例计算 Orders 表中的记录数。

SELECT Count(*) 
AS TotalOrders FROM Orders;

如果 expr 标识多个字段,那么 Count 函数仅统计至少有一个字段为非 Null 值的记录。 如果所有指定字段均为 Null 值,那么该记录不被统计在内。 可以使用 & 号分隔字段名。 下面的示例显示了如何将计算限于那些 ShippedDate 或 Freight 为非 Null 值的记录:

SELECT 
Count('ShippedDate & Freight') 
AS [Not Null] FROM Orders;

在查询表达式中使用 Count 。 也可以将该表达式用于 QueryDef 对象的 SQL 属性中,或者在基于 SQL 查询创建 Recordset对象时使用该表达式。

示例

以下示例使用 Orders 表来计算发往 United Kingdom 的订单数。

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

Sub CountX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
    
    ' Calculate the number of orders shipped  
    ' to the United Kingdom. 
    Set rst = dbs.OpenRecordset("SELECT" _ 
        & " Count (ShipCountry)" _ 
        & " AS [UK Orders] FROM Orders" _ 
        & " WHERE ShipCountry = 'UK';") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 25 
 
    dbs.Close 
 
End Sub 

另请参阅

支持和反馈

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