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