Applies ToMicrosoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

您可以使用 DSum 函數來計算指定記錄集合中一組值的總和, ( 範圍) 。 在 Visual Basic for Applications (VBA) 模組、 巨集、查詢運算式或 計算控制項中使用 DSum 函數。

例如,您可以在查詢的匯出字段表達式中使用 DSum 函數來計算特定員工在一段時間內的總銷售額。 或者,您可以在計算控件中使用 DSum 函數,顯示特定產品的銷售量總和。

語法

DSum ( expr , domain [, criteria] )

DSum 函數語法具有下列自變數:

引數

描述

expr

必要。 用來識別要合計值的數值欄位的表達式。 它可以是識別資料表或查詢中欄位的 字串運算式,或可以是在該欄位的資料上執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 expr 可包含內建或使用者定義的函數,但不得是另一個網域彙總或 SQL 彙總函數。

domain

必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。

criteria

可省略。 用來限制 執行 DSum 函數之數據範圍的字串表達式。 例如,criteria 通常相當於 SQL 運算式中的 WHERE 子句,但沒有 WHERE 字樣。 如果省略 criteria則 DSum 函數會針對整個網域評估 expr 。 準則 中包含 的任何欄位也必須是網 中的欄位;否則, DSum 函數會傳 回 Null。

註解

如果沒有任何記錄符合 criteria 自變數,或網域不包含記錄, 則 DSum 函數會傳回 Null。

無論您是在宏、模組、查詢運算式或計算控件中使用 DSum 函數,您都必須仔細建構 criteria 自變數,以確保能正確評估。

您可以使用 DSum 函數在查詢的 [ 準則 ] 資料列、查詢表示式中的匯出欄位或 更新查詢的 [ 更新至 ] 列中指定準則。

附註: 您可以在 合計查詢的匯出字段表示式中使用 DSumSum 函數。 如果您使用 DSum 函數,值會在資料分組之前進行計算。 如果您使用 Sum 函 ,數據會先分組,然後再評估欄位運算式中的值。

當您需要顯示非表單或報表記錄來源之欄位的一組值加總時,建議您使用 DSum 函數。 例如,假設您有顯示特定產品相關信息的表單。 您可以使用 DSum 函數,在計算控件中維護該產品的銷售總額。

祕訣

如果您需要在報表上的控件中維持執行總計,您可以使用該控件的 RunningSum 屬性,如果其基礎欄位包含在報表的記錄來源中。 使用 DSum 函數在表單上維持執行中的加總。

附註: 當您使用此函數時,不會包含 網域 中記錄的未儲存變更。 如果您希望 DSum 函數根據變更的值,您必須先儲存變更,方法是按兩下 [常] 索引標籤上 [記錄] 群組中的 [儲存記錄]、將焦點移至另一筆記錄,或使用更新方法。

範例

在表達式中使用 DSum 函數    您可以在更新查詢的 [更新至] 列中使用網域函數 (例如 DSum) 。 例如,假設您想要在 [產品] 數據表中依產品追蹤目前的銷售量。 您可以將名為 SalesSoFar 的新欄位新增至 [產品] 資料表,並執行更新查詢以計算正確的值並更新記錄。 若要這麼做,請根據 [產品] 數據表建立新的查詢,然後在 [ 設計 ] 索引卷標上,按兩下 [ 查詢類型 ] 群組中的 [ 更新]。 將 SalesSoFar 字段新增至查詢網格線,然後在 [ 更新至 ] 列中輸入下列內容:

DSum("[Quantity]*[UnitPrice]", "Order Details", _    "[ProductID] = "& [ProductID])

當您執行查詢時,Access 會根據 [訂單詳細數據] 資料表中的資訊,計算每個產品的總銷售額。 每個產品的銷售總和會新增至 [產品] 數據表。

在 VBA 程序代碼中使用 DSum    

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

下列範例會匯總出出往英國之訂單的 Freight 字段值。 網域是 [訂單] 數據表。 criteria 自變數會將結果記錄集限制為 ShipCountryRegion 等於英國之記錄集。

Dim curX As CurrencycurX = DSum("[Freight]", "Orders", _    "[ShipCountryRegion] = 'UK'")

下一個範例會使用兩個不同的準則來計算總計。 請注意,字串表達式中會包含單引號 ( ) 和數位符號 (#) ,因此當字串串連時,字串常值會以單引號括住,且日期會以井字型大小括住。

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

需要更多協助嗎?

想要其他選項嗎?

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

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