DMin 與 DMax 函數

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

你可以使用 DMinDMax 函式來判斷特定紀錄組 (域) 的最小值與最大值。 在 Visual Basic for Applications 中使用 DMinDMax 函式 (VBA) 模組、巨集、查詢表達式或計算控制項。

例如,您可以在報表的計算控制項上使用 DMinDMax 函數,顯示特定客戶的最小和最大訂單金額。 或者,您也可以在查詢運算式中使用 DMin 函數來顯示折扣大於最低可能折扣的所有訂單。

語法

DMin (經驗、領域 [、標準] )

DMax (expr、domain [, 標準] )

DMinDMax 函數具有下列引數:

引數 描述
expr 必要。 運算式,用來識別您要尋找最小值或最大值的欄位。 它可以是用來識別資料表或查詢欄位的字串表達式,也可以是對該欄位資料進行計算的表達式。 在 expr 中,你可以包含欄位名稱、表單上的控制項、常數或函式。 如果 expr 包含函式,可以是內建或使用者定義的,但不能是其他網域聚合或 SQL 聚合函式。
domain 必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。
criteria 可省略。 用來限制執行 DMinDMax 函數的資料範圍的字串運算式。 例如, criteria 通常等同於 SQL 表達式中的 WHERE 子句,但沒有 WHERE 這個詞。 若遺漏 條件DMinDMax 函數會對整個領域評估 expr 。 條件中包含的任何 欄位必須同時 也是 領域中的欄位,否則 DMinDMax 函式會回傳 Null。

註解

DMinDMax 函式回傳符合條件的最小值與最大值。 如果 expr 識別數值資料, DMinDMax 函式會回傳數值。 如果 expr 識別字串資料,則會回傳字母順序第一或最後一字串。

DMinDMax 函式忽略 expr 所參考欄位中的 Null 值。 然而,若無紀錄符合 條件 中無紀錄, DMinDMax 函式會回傳 Null

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

你可以使用 DMinDMax 函式,在查詢的 Criteria 列、查詢的計算欄位表達式,或更新查詢的 Update To 列指定條件。

注意

你可以在總數查詢的計算欄位表達式中使用 DMinDMax 函數,或是 最小 值和 最大 值函數。 如果您使用 DMinDMax 函數,則會在資料分組之前評估值。 如果您使用 MinMax 函數,資料會在評估欄位運算式中的值之前進行分組。

當您需要指定準則以限制執行函數的資料範圍時,請使用計算控制項中的 DMinDMax 函數。 例如,若要顯示出貨至加州之訂單的運費上限,請將文字輸入框的 ControlSource 屬性設定為下列運算式:

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

如果你只是想找出 中所有紀錄的最小值或最大值,可以使用 最小 值或 最大 值函數。

如果需要顯示的欄位不在表單所根據的記錄來源時,您也可以在模組或巨集中或是表單上的計算控制項中,使用 DMinDMax 函數。

祕訣

雖然你可以使用 DMin 或 DMax 函式來尋找外外資料表欄位的最小值或最大值,但建立一個包含兩個表格欄位的查詢,並以此查詢為基礎來建立表單或報告,可能會更有效率。

注意

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

範例

注意

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

下列範例會傳回運送到英國之訂單的 [運費] 欄位中的最低值和最高值。 網域是 [訂單] 資料表。 標準論點將所得紀錄限制為 ShipCountryRegion 等於英國的紀錄。


Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

在下一個例子中, 條件 參數包含一個名為 OrderDate 的文字框的當前值。 文字輸入框會繫結至 [訂單] 資料表中的 [訂單日期] 欄位。 請注意,不要以表示字串的雙引號 (") 括住控制項的參照。 這可確保在每次呼叫 DMax 函數時,Access 會從控制項取得目前的值。


Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
    & Forms!Orders!OrderDate & "#")

在下一個例子中,準則表達包含一個變數 dteOrderDate。 請注意,字串運算式中會包含數字符號 (#),因此當字串串連時,就會將日期括住。


Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
    "[OrderDate] = #" & dteOrderDate & "#")