DAvg 函數

套用到
Microsoft 365 Access 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 這個詞。 若遺漏 條件DAvg 函數會對整個領域評估 expr 。 任何包含在 條件 中的欄位也必須是 領域中的欄位;否則 DAvg 函式會回傳 Null。

    

註解

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

無論你是在巨集或模組中使用 DAvg 函式、查詢運算式,或是計算控制項,都必須謹慎構建 條件 參數參數,以確保其能被正確評估。

您可以使用 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 函數來計算外域資料表中欄位值的平均值,但建立一個包含所有欄位的查詢,然後以此為基礎建立表單或報告,可能會更有效率。

注意

使用這個功能時, 網域中未 儲存的紀錄變更不會被包含在內。 如果想要 DAvg 函數以變更的值為基礎,您必須先儲存變更,方法是按一下 [資料] 索引標籤的 [記錄] 底下的 [儲存記錄],將焦點移到另一筆記錄,或是使用 [更新] 方法。

範例

注意

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

下列函數會傳回指定日期或之後出貨訂單的平均運費。 網域是 [訂單] 資料表。 標準論點根據給定的國家/地區及出貨日期限制所產生的紀錄集。 請注意,關鍵字 AND 包含在字串中,以分隔 條件 參數中的多個欄位。 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#