Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

您可以使用 DCount 函數來判斷指定一組記錄中的記錄數目, ( 範圍) 。 在 Visual Basic for Applications (VBA) 模組、 巨集、查詢表達式或 計算控制項中使用 DCount 函數。

例如,您可以在模組中使用 DCount 函數,傳回 Orders 資料表中對應到特定日期訂單的記錄數目。

語法

DCount ( expr , domain [, criteria] )

DCount 函數語法具有下列自變數:

引數

描述

expr

必要。 用來識別您要計算記錄之欄位的運算式。 它可以是識別資料表或查詢中欄位的 字串運算式,或可以是在該欄位的資料上執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 expr 可包含內建或使用者定義的函數,但不得是另一個網域彙總或 SQL 彙總函數。

domain

必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。

criteria

可省略。 用來限制 執行 DCount 函數之數據範圍的字串表達式。 例如, criteria 通常等同於 SQL 運算式中的 WHERE 子句,而沒有 WHERE 一詞。 如果省略 criteria則 DCount 函數會針對整個網域評估 expr 。 準則 中包含 的任何欄位也必須是網 中的欄位;否則 DCount 函數會傳 回 Null。

註解

當您不需要知道網域的特定值時,請使用 DCount 函數來計算網域中的記錄數目。 雖然 expr 自變數 可以在字段上執行計算, 但 DCount 函數只會計算記錄數目。 expr 所執行的任何計算值都無法使用。

當您需要指定準則以限制執行函數的數據範圍時,請在計算控件中使用 DCount 函數。 例如,若要顯示要運送到加州的訂單數量,請將文本框的 ControlSource 屬性設為下列運算式:

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

如果您只想計算 網域 中的所有記錄,但不指定任何限制,請使用 Count 函數

祕訣 Count 函數已經過優化,可加速查詢中的記錄計數。 在查詢表達式中使用 Count 函數,而非 DCount 函數,並設定選擇性準則以對結果強制執行任何限制。 當您必須從程式代碼模組或宏或計算控件中計算網域中的記錄時,請使用 DCount 函數。

您可以使用 DCount 函數來計算包含特定欄位的記錄數目,該欄位不在表單或報表所根據的記錄來源中。 例如,您可以根據 [產品] 數據表,在表單上的匯出控件中,顯示 [訂單] 數據表中的訂單數量。

除非 expr 是星號 (*) 通配符,否則 DCount 函數不會計算包含 expr 參照字段中 Null 值的記錄。 如果您使用星號, DCount 函數會計算記錄總數,包括包含 Null 字段的記錄。 下列範例會計算 Orders 資料表中的記錄數目。

intX = DCount("*", "Orders")

如果 網域 是具有 主索引鍵的數據表,您也可以設定主鍵欄位的 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")

附註:  安培是執行字串串連的慣用運算符。 除非您明確想要透過表達式傳播 Nulls ,否則您應該避免將加法運算子用於新增數值以外的任何專案。

使用這個函數時,不會包括 domain 中未儲存的記錄變更。 如果您希望 DCount 函數根據變更的值,您必須先儲存變更,方法是按兩下 [資料] 索引標籤上 [記錄] 下的 [儲存記錄]、將焦點移至另一筆記錄,或使用 Update 方法。

查詢範例

Expression

結果​​

SELECT DCount (“ProductID”,“ProductSales”,“Discount=0”) AS Expr1 FROM ProductSales GROUP BY DCount (“ProductID”,“ProductSales”,“Discount=0”) ;

傳回數據表 「ProductSales」 欄位 「ProductID」 中的值計數,其中 「Discount」 值為 「0」。。

SELECT DCount (“ProductID”,“ProductSales”,“DateofSale=Date () -1”) AS YesterdaySale FROM ProductSales GROUP BY DCount (“ProductID”,“ProductSales”,“DateofSale=Date () -1”) ;

傳回數據表 「ProductSales」 字段 「ProductID」 中的值計數,其中 「DateofSale」 比目前日期早一天。

VBA 範例

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

下列函數會傳回指定出貨日期之後至指定國家/地區的訂單數量。 網域是 [訂單] 數據表。

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

若要呼叫函數,請在 [立即] 視窗中使用下列程式代碼列:

:OrdersCount "UK", #1/1/96#

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×