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

您可以使用 DMinDMax 函數來判斷指定記錄集的最小值和最大值, ( 範圍) 。 在 Visual Basic for Applications (VBA) 模組、 巨集、查詢表達式或 計算控制項中使用 DMinDMax 函數。

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

語法

DMin ( expr , domain [, criteria] )

DMax ( expr , domain [, criteria] )

DMinDMax 函數具有下列自變數:

引數

描述

expr

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

domain

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

criteria

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

註解

DMinDMax 函數會傳回符合準則的最小值和最大值。 如果 expr 識別數值數據, 則 DMinDMax 函數會傳回數值。 如果 expr 識別字串數據,則會傳回依字母順序排列的第一個或最後一個字串。

DMinDMax 函數會忽略 expr 參照字段中的 Null 值。 不過,如果沒有符合 準則 的記錄,或 是網域 中沒有記錄, 則 DMinDMax 函數會傳回 Null

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

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

附註: 您可以在 合計查詢的導出字段表達式中使用 DMinDMax 函數,或 Min 和 Max 函數。 如果您使用 DMinDMax 函數,則會在資料分組之前評估值。 如果您使用 MinMax 函數,數據會先分組,然後再評估欄位表示式中的值。

當您需要指定準則來限制執行函數的數據範圍時,請在計算控件中使用 DMinDMax 函數。 例如,若要顯示運送至加州訂單所收取的運費上限,請將文本框的 ControlSource 屬性設為下列表達式:

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

如果您只想找出 網域中所有記錄的最小值或最大值,請使用 MinMax 函數。

如果您需要顯示的欄位不在表單的記錄來源中,您可以在模組或宏中使用 DMinDMax 函數,或在表單上的匯出控制項中使用。

祕訣

雖然您可以使用 DMin 或 DMax 函數,從 外部資料表中的欄位尋找最小值或最大值,但從資料表建立包含所需字段的查詢,並以該查詢為基礎建立表單或報表可能更有效率。

附註: 當您使用這些函數時,不會包含 網域 中記錄的未儲存變更。 如果您希望 DMaxDMin 函數是以變更的值為基礎,您必須先在 [資料] 索引標籤的 [記錄] 底下按兩下 [儲存記錄],將焦點移至另一筆記錄,或使用更新方法來儲存變更

範例

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

下列範例會傳回運送到英國之訂單的 Freight 字段中的最低值和最高值。 網域是 [訂單] 數據表。 criteria 自變數會將結果記錄集限制為 ShipCountryRegion 等於英國之記錄集。

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

在下一個範例中, criteria 自變數包含名為 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 & "#")

Need more help?

Want more options?

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

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