(Microsoft Access SQL)
適用於: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 辨識出多個欄,則至少一個欄不是 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
另請參閱
- 存取開發人員論壇
- 在 support.office.com 上存取說明
- 存取 UtterAccess 上的論壇
- 存取開發人員和 VBA 程式設計說明中心 (FMS)
- 存取 StackOverflow 上的文章
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。