使用 DCount 函數來判斷網域) (指定記錄集中的記錄數目。
語法
表達。DCount (Expr, Domain, Criteria)
expression 代表 Application 物件的變數。
參數
| 名稱 | 必要/選用 | 資料類型 | 描述 |
|---|---|---|---|
| Expr | 必要 | 字串 | 識別您要計算記錄的欄位的運算式。 它可以是識別資料表或查詢中欄位的字串運算式,或計算該欄位中資料的運算式。 expr 中可以包含資料表中欄位的名稱、表單上的控制項、常數或函數。 如果 expr 包含函數,則它可以是內建或使用者定義的,但不能是另一個網域聚集或 SQL 聚集函數。 |
| 網域 | 必要 | 字串 | 字串運算式,可識別構成網域的記錄集。 它可以是表格名稱,也可以是不需要參數之查詢的查詢名稱。 |
| Variant | 用來限制在其上執行 DVarP 函數的資料範圍的選用的字串運算式。例如, criteria等於通常 WHERE 子句的 SQL 運算式,不含 where 位置。如果省略 criteria ,則 DVarP 函數會評估 expr針對整個網域。包含在 criteria任何欄位也必須是 domain; 中的欄位否則 DVarP 函數會傳回 Null 。 | Variant | 選用的字串運算式,用來限制要執行 DCount 函數的資料範圍。 例如,criteria 通常相當於 SQL 運算式中的 WHERE 子句,但不用加上 WHERE 這個字。 如果省略 criteria,則 DCount 函數會計算整個範圍的 expr。 準則中包含的任何欄位也必須是網域中的欄位;否則,DCount 函式會傳回 Null。 |
傳回值
Variant
註解
例如,您可以在模組中使用 DCount 函數,傳回訂單資料表上某個特定日期所下訂單的記錄數目。
不需要特別知道記錄的值時,使用 DCount 函數計算範圍中記錄的數目。 雖然 expr 可以在欄位上執行計算,但是 DCount 函數僅能計算記錄數目。 執行 expr 所計算得出的值無法使用。
如果要指定準則限制執行函數的資料範圍,請在計算控制項中使用 DCount 函數。 例如,若要顯示目的地為美國加州的出貨訂單數目,請將文字方塊的 ControlSource 屬性設定為以下運算式:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
如果您只想計算 網域 中的所有記錄而不指定任何限制,請使用 Count 函數。 Count 函數已經過最佳化,可以在查詢中快速統計記錄。 請在查詢運算式中使用 Count 函數而不使用 DCount 函數,並選擇是否設定準則以限制傳回的結果。
如果必須從程式碼模組、巨集或計算控制項內計數範圍中的記錄,則使用 DCount 函數。
使用 DCount 函式來計算包含特定欄位的記錄數目,而這些欄位不在表單或報表所依據的記錄來源中。 例如,在使用 [產品] 資料表的表單上的計算控制項中,可顯示訂單資料表中的訂單數目。
對於 expr 所參考且欄位中包含 Null 值的記錄,DCount 函數並不會計算這些記錄,除非 expr 是星號 (*) 萬用字元才會計算。 如果使用星號,DCount 函數會計算記錄的總數目,包括包含 Null 欄位的記錄。 下列範例會計算訂單資料表的記錄數目。
intX = DCount("*", "Orders")
如果 domain 是具有主索引鍵的表,您也可以透過將 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 值則另當別論。
範例
下列函式會傳回在指定出貨日期之後運送到指定國家或地區的訂單數量。 範圍是 Orders 資料表。
Public Function OrdersCount(ByVal strCountry As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountry] = '" & strCountry & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
下列範例示範如何搭配 DCount 函式使用各種類型的準則。
' ***************************
' Typical Use
' Numerical values. Replace "number" with the number to use.
variable = DCount("[FieldName]", "TableName", "[Criteria] = number")
' Strings.
' Numerical values. Replace "string" with the string to use.
variable = DCount("[FieldName]", "TableName", "[Criteria]= 'string'")
' Dates. Replace "date" with the string to use.
variable = DCount("[FieldName]", "TableName", "[Criteria]= #date#")
' ***************************
' ***************************
' Referring to a control on a form
' Numerical values
variable = DCount("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)
' Strings
variable = DCount("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")
' Dates
variable = DCount("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
' ***************************
' ***************************
' Combinations
' Multiple types of criteria
variable = DCount("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
& " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
& " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
' Use two fields from a single record.
variable = DCount("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
' Expressions
variable = DCount("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
' Control Structures
variable = DCount("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
' ***************************
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。