DMin 和 DMax 函數(shù)用于確定指定記錄集(一個域) 中的最小值和最大值??梢栽?Visual Basic、宏、查詢表達式或計算控件中使用 DMin 和 DMax 函數(shù)。
例如,可以在報表上的計算控件中使用 DMin 和 DMax 函數(shù)來顯示一個特定客戶的最大和最小訂單量。也可以在查詢表達式中使用 DMin 函數(shù)顯示折扣大于最小可能折扣的所有訂單。
DMin(expr, domain, [criteria])
DMax(expr, domain, [criteria])
DMin 和 DMax 函數(shù)具有以下參數(shù):
參數(shù) |
說明 |
expr |
表達式,用于標識要為其查找最小值和最大值的字段。也可以是用來標識表或查詢中字段的字符串表達式,或者是以該字段中的數(shù)據(jù)進行計算的表達式。在 expr 中可以包括表字段的名稱、窗體上的控件、常量或函數(shù)。如果 expr 含有函數(shù),那么它可以是內置的,也可以是用戶自定義的,但不能是另一個域聚合函數(shù)或 SQL 聚合函數(shù)。 |
字符串表達式,代表組成域的記錄集??梢允潜砻Q或不需要參數(shù)的查詢的查詢名稱。 |
|
criteria |
可選的字符串表達式,用于限制 DMin 和 DMax 函數(shù)執(zhí)行的數(shù)據(jù)范圍。例如,criteria 通常等價于 SQL 表達式中的 WHERE 子句,只是不含 WHERE 關鍵字。如果忽略 criteria,DMin 和 DMax 函數(shù)將在整個域范圍內計算 expr。任何包含在 criteria 中的字段必須同時也是 domain 中的字段,否則 DMin 和 Dmax 函數(shù)將返回 Null。 |
DMin 和 DMax 函數(shù)將返回滿足 criteria 的最小值和最大值。如果 expr 標識的是數(shù)值數(shù)據(jù),DMin 和 DMax 函數(shù)將返回數(shù)字值。如果 expr 標識的是字符串數(shù)據(jù),則返回按字母順序排列的第一個或最后一個字符串。
DMin 和 DMax 函數(shù)將忽略 expr 引用的字段中的 Null 值。但是,如果沒有記錄滿足 criteria 或者 domain 中不包含記錄,DMin 和 DMax 函數(shù)將返回 Null。
無論是在宏、模塊、查詢表達式或者在計算控件中使用 DMin 或 DMax 函數(shù),都必須謹慎構造 criteria 參數(shù)以確保能夠正確地進行計算。
在查詢的“條件”行、查詢的計算字段表達式中或更新查詢的“更新到”行中,都可以使用 DMin 和 DMax 函數(shù)指定條件。
注釋 可以在總計查詢的計算字段表達式中使用 DMin 和 DMax 函數(shù)或 Min 和 Max 函數(shù)。如果使用 DMin 或 DMax 函數(shù),將在數(shù)據(jù)分組之前求最小或最大值。如果使用 Min 或 Max 函數(shù),將在數(shù)據(jù)分組之后求字段表達式中的最小或最大值。
當需要指定條件來限制函數(shù)執(zhí)行的數(shù)據(jù)范圍時,可使用 DMin 或 DMax 函數(shù)。例如,要顯示運到“華北”的訂單的最大運費,應將文本框的“控件來源”屬性設置為下列表達式:
=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")
如果只是查找 domain 中所有記錄的最小值和最大值,可使用 Min 或 Max 函數(shù)。
如果要顯示的字段不在窗體所基于的記錄源中,可在模塊、宏或窗體上的計算控件中使用 Dmin 或 DMax 函數(shù)。
DMinDMax外部表
注釋 使用這些函數(shù)時,將不包括對 domain 記錄未保存的更改。如果希望 DMax 或 Dmin 函數(shù)基于更改后的數(shù)據(jù),必須先保存更改。方法是:單擊“記錄”菜單上的“保存記錄”、將焦點移動到另一條記錄,或使用 Update 方法。
下面的示例返回運往英國的訂單的“Freight”字段的最小和最大值。域為“Orders”表。criteria 參數(shù)將記錄集的結果限制為“ShipCountry”等于 UK 的記錄。
Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", "[ShipCountry] = 'UK'")
curY = DMax("[Freight]", "Orders", "[ShipCountry] = 'UK'")
在下面的示例中,criteria 參數(shù)將包含“OrderDate”文本框的當前值。該文本框綁定到“Orders”表中的“OrderDate”字段。請注意,控件的兩側未加上用以表示字符串的雙引號 (")。這樣可以確保每次調用 DMax 函數(shù)時,Microsoft Access 都從控件中獲得當前值。
Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
& Forms!Orders!OrderDate & "#")
在下面的示例中,條件表達式中包含了變量 dteOrderDate。請注意,字符串表達式中使用了數(shù)字符號 (#),這樣當連接字符串時,日期將包含在 # 內。
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")