您可以使用 DMin 和 DMax 函數來判斷指定記錄集的最小值和最大值, ( 範圍) 。 在 Visual Basic for Applications (VBA) 模組、 巨集、查詢表達式或 計算控制項中使用 DMin 和 DMax 函數。
例如,您可以在報表的導出控件中使用 DMin 和 DMax 函數,顯示特定客戶的最小和最大訂單金額。 或者,您也可以在查詢表示式中使用 DMin 函數來顯示折扣大於最低可能折扣的所有訂單。
語法
DMin ( expr , domain [, criteria] )
DMax ( expr , domain [, criteria] )
DMin 和 DMax 函數具有下列自變數:
引數 |
描述 |
---|---|
expr |
必要。 用來識別您要尋找最小值或最大值之欄位的表達式。 它可以是識別資料表或查詢中欄位的 字串運算式,或可以是在該欄位的資料上執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 expr 可包含內建或使用者定義的函數,但不得是另一個網域彙總或 SQL 彙總函數。 |
domain |
必要。 識別構成範圍之記錄集的字串運算式。 它可以是資料表名稱,或不需要參數之查詢的查詢名稱。 |
criteria |
可省略。 用來限制 執行 DMin 或 DMax 函數之數據範圍的字串表示式。 例如, criteria 通常等同於 SQL 運算式中的 WHERE 子句,而沒有 WHERE 一詞。 如果省略 criteria , 則 DMin 和 DMax 函數會根據整個網域評估 expr 。 criteria 中包含的任何字段也必須是網域中的欄位,否則 DMin 和 DMax 函數會傳回 Null。 |
註解
DMin 和 DMax 函數會傳回符合準則的最小值和最大值。 如果 expr 識別數值數據, 則 DMin 和 DMax 函數會傳回數值。 如果 expr 識別字串數據,則會傳回依字母順序排列的第一個或最後一個字串。
DMin 和 DMax 函數會忽略 expr 參照字段中的 Null 值。 不過,如果沒有符合 準則 的記錄,或 是網域 中沒有記錄, 則 DMin 和 DMax 函數會傳回 Null。
無論您是在宏、模組、查詢運算式或計算控件中使用 DMin 或 DMax 函數,您都必須仔細建構 criteria 自變數以確保正確評估。
您可以使用 DMin 和 DMax 函數,在查詢的 [準則] 資料列、查詢中的匯出欄位表示式或 更新查詢的 [更新至] 資料列中指定準則。
附註: 您可以在 合計查詢的導出字段表達式中使用 DMin 和 DMax 函數,或 Min 和 Max 函數。 如果您使用 DMin 或 DMax 函數,則會在資料分組之前評估值。 如果您使用 Min 或 Max 函數,數據會先分組,然後再評估欄位表示式中的值。
當您需要指定準則來限制執行函數的數據範圍時,請在計算控件中使用 DMin 或 DMax 函數。 例如,若要顯示運送至加州訂單所收取的運費上限,請將文本框的 ControlSource 屬性設為下列表達式:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
如果您只想找出 網域中所有記錄的最小值或最大值,請使用 Min 或 Max 函數。
如果您需要顯示的欄位不在表單的記錄來源中,您可以在模組或宏中使用 DMin 或 DMax 函數,或在表單上的匯出控制項中使用。
祕訣
雖然您可以使用 DMin 或 DMax 函數,從 外部資料表中的欄位尋找最小值或最大值,但從資料表建立包含所需字段的查詢,並以該查詢為基礎建立表單或報表可能更有效率。
附註: 當您使用這些函數時,不會包含 網域 中記錄的未儲存變更。 如果您希望 DMax 或 DMin 函數是以變更的值為基礎,您必須先在 [資料] 索引標籤的 [記錄] 底下按兩下 [儲存記錄],將焦點移至另一筆記錄,或使用更新方法來儲存變更。
範例
附註: 下列範例示範如何在 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 & "#")