(Access) 的 Application.DCount 方法

使用 DCount 函數來判斷網域) (指定記錄集中的記錄數目。

語法

表達式DCount (ExprDomainCriteria)

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 支援與意見反應