(Access) 的 Application.DSum 方法

使用 DSum 函式來計算定義域) (指定記錄集中一組值的總和。

語法

運算式DSum (ExprDomainCriteria)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Expr 必要 字串 運算式,這會識別您想要合計其值的數值欄位。 它可以是識別資料表或查詢中欄位的字串運算式,也可以是對 該欄位中的資料執行計算的運算式expr 中可以包含資料表中欄位的名稱、表單上的控制項、常數或函數。 如果 expr 包含函式,它可以是內建或使用者定義,但不能是另一個網域匯總或 SQL 彙總函式。
網域 必要 String 字串運算式,識別構成網域的記錄集。 它可以是不需要參數之查詢的資料表名稱或查詢名稱。
Variant 用來限制在其上執行 DVarP 函數的資料範圍的選用的字串運算式。例如, criteria等於通常 WHERE 子句的 SQL 運算式,不含 where 位置。如果省略 criteria ,則 DVarP 函數會評估 expr針對整個網域。包含在 criteria任何欄位也必須是 domain; 中的欄位否則 DVarP 函數會傳回 Null 。 Variant 選用的字串運算式,用來限制要執行 DSum 函數的資料範圍。 例如,criteria 通常相當於 SQL 運算式中的 WHERE 子句,但不用加上 WHERE 這個字。 如果省略 criteria,則 DSum 函數會計算整個範圍的 expr。 此外,criteria 中包含的所有欄位也都必須是 domain 中的欄位,否則 DSum 函數會傳回 Null

傳回值

Variant

註解

例如,您可以在查詢的計算欄位運算式中使用 DSum 函數,計算一段時間內特定員工的總銷售額。 或者也可以在計算控制項內使用 DSum 函數,顯示特定產品的累計銷售總額。

如果沒有任何記錄符合 criteria 引數,或如果 domain 不包含任何記錄, DSum 函式會傳回 Null

不論是在巨集、模組、查詢運算式,還是在計算控制項中使用 DSum 函數,都必須小心建構 criteria 引數,以確定可以正確進行計算。

使用 DSum 函數來指定 查詢之 Criteria 資料列中的準則、查詢運算式中的匯出欄位,或更新查詢的 [ 更新至 ] 資料列中的準則。

注意事項

在合計查詢的匯出欄位運算式中使用 DSumSum 函數。 如果您使用 DSum 函數,則會先計算值,再將資料分組。 如果您使用 Sum 函 ,則會先將資料分組,再評估欄位運算式中的值。

當您需要從不在表單或報表之記錄來源的欄位顯示一組值的總和時,可以使用 DSum 函數。 例如,假設您的表單會顯示特定產品的相關資訊。 您可以使用 DSum 函數,在匯出控制項中維持該產品的銷售總額。

如果您需要在報表的控制項中維護執行中的總計,您可以使用該控制項的 RunningSum 屬性,如果它所根據的欄位包含在報表的記錄來源中。 請使用 DSum 函數維護表單的累加值。

範例

下列範例會合計出貨至英國訂單的 [運費 ] 欄位中的值。 範圍是 Orders 資料表。 criteria 引數則將產生的記錄集限制在 ShipCountry 等於 UK 的記錄。

Dim curX As Currency 
curX = DSum("[Freight]", "Orders", "[ShipCountry] = 'UK'")

下一個範例使用兩個個別的準則來計算合計。 請注意,在字串運算式之中包含了單引號 (') 和井字號 (#),如此當字串串接時,字串文字將被包圍在單引號之中,而日期將被包圍在井字號之中。

Dim curX As Currency 
curX = DSum("[Freight]", "Orders", _ 
    "[ShipCountry] = 'UK' AND [ShippedDate] > #1-1-95#")

下列範例示範如何搭配 DSum 函式使用各種類型的準則。

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DSum("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DSum("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DSum("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DSum("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DSum("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DSum("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DSum("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應