DMin、DMax 函數(shù)

此頁(yè)沒(méi)有內(nèi)容條目
內(nèi)容

expandtri全部顯示

DMinDMax 函數(shù)用于確定指定記錄集(一個(gè)) 中的最小值和最大值??梢栽?Visual Basic、、查詢表達(dá)式或計(jì)算控件中使用 DMinDMax 函數(shù)。

例如,可以在報(bào)表上的計(jì)算控件中使用 DMinDMax 函數(shù)來(lái)顯示一個(gè)特定客戶的最大和最小訂單量。也可以在查詢表達(dá)式中使用 DMin 函數(shù)顯示折扣大于最小可能折扣的所有訂單。

DMin(expr, domain, [criteria])

DMax(expr, domain, [criteria])

DMinDMax 函數(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ù)。

domain

字符串表達(dá)式,代表組成域的記錄集。可以是表名稱或不需要參數(shù)的查詢的查詢名稱。

criteria

可選的字符串表達(dá)式,用于限制 DMinDMax 函數(shù)執(zhí)行的數(shù)據(jù)范圍。例如,criteria 通常等價(jià)于 SQL 表達(dá)式中的 WHERE 子句,只是不含 WHERE 關(guān)鍵字。如果忽略 criteria,DMinDMax 函數(shù)將在整個(gè)域范圍內(nèi)計(jì)算 expr。任何包含在 criteria 中的字段必須同時(shí)也是 domain 中的字段,否則 DMinDmax 函數(shù)將返回 Null

 

說(shuō)明

DMinDMax 函數(shù)將返回滿足 criteria 的最小值和最大值。如果 expr 標(biāo)識(shí)的是數(shù)值數(shù)據(jù),DMinDMax 函數(shù)將返回?cái)?shù)字值。如果 expr 標(biāo)識(shí)的是字符串?dāng)?shù)據(jù),則返回按字母順序排列的第一個(gè)或最后一個(gè)字符串。

DMinDMax 函數(shù)將忽略 expr 引用的字段中的 Null 值。但是,如果沒(méi)有記錄滿足 criteria 或者 domain 中不包含記錄,DMinDMax 函數(shù)將返回 Null。

無(wú)論是在宏、模塊、查詢表達(dá)式或者在計(jì)算控件中使用 DMinDMax 函數(shù),都必須謹(jǐn)慎構(gòu)造 criteria 參數(shù)以確保能夠正確地進(jìn)行計(jì)算。

在查詢的“條件”行、查詢的計(jì)算字段表達(dá)式中或更新查詢的“更新到”行中,都可以使用 DMinDMax 函數(shù)指定條件。

注釋  可以在總計(jì)查詢的計(jì)算字段表達(dá)式中使用 DMinDMax 函數(shù)或 MinMax 函數(shù)。如果使用 DMinDMax 函數(shù),將在數(shù)據(jù)分組之前求最小或最大值。如果使用 MinMax 函數(shù),將在數(shù)據(jù)分組之后求字段表達(dá)式中的最小或最大值。

當(dāng)需要指定條件來(lái)限制函數(shù)執(zhí)行的數(shù)據(jù)范圍時(shí),可使用 DMinDMax 函數(shù)。例如,要顯示運(yùn)到“華北”的訂單的最大運(yùn)費(fèi),應(yīng)將文本框的“控件來(lái)源”屬性設(shè)置為下列表達(dá)式:

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

如果只是查找 domain 中所有記錄的最小值和最大值,可使用 MinMax 函數(shù)。

如果要顯示的字段不在窗體所基于的記錄源中,可在模塊、宏或窗體上的計(jì)算控件中使用 DminDMax 函數(shù)。

blueup提示

DMinDMax外部表

注釋  使用這些函數(shù)時(shí),將不包括對(duì) domain 記錄未保存的更改。如果希望 DMaxDmin 函數(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 & "#")