使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

您可以使用 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#

需要更多協助嗎?

想要其他選項嗎?

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

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

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×