(Access) 的 Application.DCount 方法
使用 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。 criteria 中包含 的任何字段也必須是網域中的欄 位;否則, 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 支援與意見反應。