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