Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

例如,您可以在運費選取查詢的準則列中使用 DAvg 函數,將結果限製為運費超過平均值的記錄。 或者,您可以在計算控件中使用包含 DAvg 函數的運算式,並在新訂單的值旁邊顯示先前訂單的平均值。

語法

DAvg ( expr , domain [, criteria] )

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

引數

描述

expr

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

domain

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

criteria

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

註解

包含 Null 值的記錄不會包含在平均值的計算中。

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

您可以使用 DAvg 函數在查詢的 [準則] 列中指定準則。 例如,假設您想要檢視訂單數量高於平均訂單數量的所有產品清單。 您可以在 [訂單]、[訂單詳細數據] 和 [產品] 數據表上建立查詢,並包含 [產品名稱] 字段和 [數量] 字段,在 [數量] 字段底下的 [準則] 列中包含下列表達式:

>DAvg("[Quantity]", "Orders")

您也可以在查詢的導出字段表達式內,或在 更新查詢的 [更新至] 列中使用 DAvg 函數。

附註: 您可以在 合計查詢的匯出字段表示式中使用 DAvgAvg 函數。 如果您使用 DAvg 函數,值會在資料分組之前進行平均。 如果您使用 Avg 函數,數據會在欄位表示式中的值平均之前分組。

當您需要指定準則以限制 DAvg 函數執行的數據範圍時,請在計算控件中使用 DAvg 函數。 例如,若要顯示寄送到加州的出貨平均運費,請將文本框的 ControlSource 屬性設為下列表達式:

=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")

如果您只想平均 網域中的所有記錄,請使用 Avg 函數。

如果您需要顯示的欄位不在表單的記錄來源中,您可以在模組或宏中使用 DAvg 函數,或在表單上的匯出控制項中使用。 例如,假設您有一份以 [訂單] 資料表為基礎的表單,而您想要從 [訂單詳細數據] 資料表包含 [數量] 字段,以顯示特定客戶訂購的平均項目數。 您可以使用 DAvg 函數執行此計算,並在表單上顯示資料。

秘訣

  • 如果您在導出控件中使用 DAvg 函數,建議您將控件放在表單頁首或頁尾,如此一來,每次移至新記錄時,就不會重新計算此控件的值。

  • 如果衍生 expr 之字段的數據類型是數位, 則 DAvg 函數會傳 回 Double 資料類型。 如果您在計算控件中使用 DAvg 函數,請在表達式中包含資料類型轉換函數,以改善效能。

  • 雖然您可以使用 DAvg 函數來判斷 外部資料表欄位中值的平均值,但建立包含您需要之所有欄位的查詢,然後以該查詢為基礎建立表單或報表可能會更有效率。

附註: 使用這個函數時,不會包括 domain 中未儲存的記錄變更。 如果您希望 DAvg 函數根據變更的值,您必須先儲存變更,方法是按兩下 [資料] 索引標籤上 [記錄] 下的 [儲存記錄]、將焦點移至另一筆記錄,或使用 [更新] 方法。

範例

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

下列函數會傳回指定日期或之後出貨訂單的平均運費。 網域是 [訂單] 數據表。 criteria 自變數會根據指定國家/地區和出貨日期限制產生的記錄集合。 請注意,字串中包含了 AND 關鍵詞,以分隔 criteria 自變數中的多個字段。 DAvg 函數計算中包含的所有記錄都會有這兩個準則。

Public Function AvgFreightCost _    (ByVal strCountryRegion As String, _     ByVal dteShipDate As Date) As Double    AvgFreightCost = DAvg("[Freight]", "Orders", _        "[ShipCountryRegion] = '" & strCountryRegion & _        "'AND [ShippedDate] >= #" & dteShipDate & "#")End Function

若要呼叫函數,請在 [立即] 視窗中使用下列程式代碼列:

:AvgFreightCost "UK", #1/1/96#

Need more help?

Want more options?

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

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