分享方式:


Microsoft Access SQL) (計數函數

適用於:Access 2013 | Access 2016

計算查詢傳回的記錄數目。

語法

Count(expr)

expr 預留位置是表示字串運算式 (可識別包含要加以評估之數值資料的欄位),或表示運算式 (使用該欄位中的資料執行計算)。 expr 中的運算子可以包含資料表欄位的名稱、常數或函數 (可以是內建或使用者定義函數,但不得為其他 SQL 彙總函數的其中一種)。 您可以計算任何種類的資料,包括文字。

註解

使用 [計數] 來計算基礎查詢中的記錄數。 例如,您可以使用 Count 來計算運送到特定國家或地區的訂單數量。

expr 可以在欄位上執行計算,Count 則僅計算記錄的數目。 至於記錄中儲存什麼值則不重要。

Count 函數不計算帶有 Null 欄位的記錄,除非 expr 是星號 (*) 萬用字元。 如果您使用星號,Count 會計算所有的記錄筆數,包括那些含有 Null 欄位的記錄。 計數 ( * ) Count ([ Column Name ] ) 快得多。 請勿在星號外加上引號 (' ')。

以下範例說明 Orders 資料表中的記錄數目:

SELECT Count(*) 
AS TotalOrders FROM Orders;

如果 expr 辨識出多個欄,則至少一個欄不是 Null 時,Count 函數才會計算記錄。 如果所有指定的欄都是 Null,就不會計算記錄。 請使用 & 符號來分隔欄位名稱。 下面的範例告訴您如何將計算限制於 ShippedDate 或 Freight 不是 Null 的記錄:

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

在查詢運算式中使用 Count 。 您也可以在 QueryDef 物件的 SQL 屬性中使用此運算式,或根據 SQL 查詢建立 Recordset 物件時。

範例

本範例會使用 [Orders] 資料表,計算要運送至英國的訂單數量。

本範例會呼叫 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 支援與意見反應