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