DAvg 函數(shù)

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

expandtri全部顯示

使用 DAvg 函數(shù)可以計(jì)算特定記錄集(一個(gè))內(nèi)一組值的平均值??梢栽?Visual Basic 代碼、、查詢(xún)表達(dá)式或計(jì)算控件中使用 DAvg 函數(shù)。

例如,可以在選擇查詢(xún)的運(yùn)費(fèi)字段所對(duì)應(yīng)的條件行中使用 DAvg 函數(shù),來(lái)限制返回運(yùn)費(fèi)超過(guò)平均值以上的記錄。或者在計(jì)算控件中使用包含 DAvg 函數(shù)的表達(dá)式,在新訂單值旁邊顯示舊訂單的平均值。

DAvg(expr, domain, [criteria])

DAvg 函數(shù)具有以下參數(shù):

參數(shù)

說(shuō)明

expr

一個(gè)表達(dá)式,代表要計(jì)算其平均值的數(shù)值數(shù)據(jù)字段??梢允怯脕?lái)標(biāo)識(shí)表或查詢(xún)中字段的字符串表達(dá)式,也可以是對(duì)該字段上的數(shù)據(jù)執(zhí)行計(jì)算的表達(dá)式。在 expr 中可以包括表中字段的名稱(chēng)、窗體上的控件、常量或函數(shù)。如果 expr 包含函數(shù),那么它可以是內(nèi)置的,也可以是用戶(hù)定義的,但不能是另一個(gè)域聚合函數(shù)或 SQL 聚合函數(shù)。

domain

字符串表達(dá)式,代表組成該域的記錄集??梢允潜砻Q(chēng)或不需要參數(shù)的查詢(xún)名稱(chēng)。

criteria

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

 

說(shuō)明

包含 Null 值的記錄不能在平均值的計(jì)算中使用。

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

在查詢(xún)的“條件”行中可以使用 DAvg 函數(shù)來(lái)指定條件。例如,要查看所有定購(gòu)數(shù)量在平均訂購(gòu)量以上的產(chǎn)品列表,可以基于“Orders”、“Order Details”和“Products”表創(chuàng)建一個(gè)查詢(xún),包含“Product Name”和“Quantity”字段,并在“Quantity”字段下的“條件”行中加入以下表達(dá)式:

>DAvg("[Quantity]", "Orders")

在查詢(xún)的計(jì)算字段表達(dá)式中,或更新查詢(xún)中“更新到”行中的計(jì)算字段表達(dá)式中,也可以使用 DAvg 函數(shù)。

注釋  在總計(jì)查詢(xún)的計(jì)算字段表達(dá)式中,既可以使用 DAvg 函數(shù),也可以使用 Avg 函數(shù)。如果使用 DAvg 函數(shù),將在數(shù)據(jù)分組之前計(jì)算平均值。如果使用 DAvg 函數(shù),則在數(shù)據(jù)分組之后計(jì)算字段表達(dá)式的平均值。

當(dāng)需要指定條件來(lái)限制 DAvg 函數(shù)執(zhí)行的數(shù)據(jù)范圍時(shí),應(yīng)在計(jì)算控件中使用 DAvg 函數(shù)。例如,要顯示到 California 的運(yùn)費(fèi)的平均值,應(yīng)將文本框的 ControlSource 屬性設(shè)為如下表達(dá)式:

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

如果只對(duì)所有 domain 中的記錄計(jì)算平均值,則可使用 Avg 函數(shù)。

如果要顯示的字段不在窗體的基礎(chǔ)記錄源中時(shí),可以在模塊或宏中,或者窗體上的計(jì)算控件中,使用 DAvg 函數(shù)。例如,有一個(gè)基于“訂單”表的窗體,希望包含“訂單明細(xì)”表中的“數(shù)量”字段,以顯示按特定客戶(hù)排序的項(xiàng)目平均值,可以使用 DAvg 函數(shù)來(lái)執(zhí)行這項(xiàng)計(jì)算并在窗體中顯示該數(shù)據(jù)。

提示

?在計(jì)算控件中使用 DAvg 函數(shù)時(shí),有時(shí)需要將控件放在窗體頁(yè)眉或頁(yè)腳中,以便該控件的值在每次移動(dòng)到新記錄時(shí)不必重新計(jì)算。
?如果 expr 所源于的字段數(shù)據(jù)類(lèi)型為數(shù)字,則 DAvg 函數(shù)將返回 Double 數(shù)據(jù)類(lèi)型。如果在計(jì)算控件中使用 DAvg 函數(shù),可在表達(dá)式中包含數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù),以提高性能。
?雖然使用 DAvg 函數(shù)可以確定外部表字段的數(shù)據(jù)平均值,但是通過(guò)創(chuàng)建含有所有需要字段的查詢(xún),然后將窗體或報(bào)表建立在這個(gè)查詢(xún)的基礎(chǔ)上,效率將更高。

注釋  當(dāng)使用此函數(shù)時(shí),不包括對(duì) domain 記錄未保存的更改。如果希望 DAvg 函數(shù)基于更改后的值,必須首先保存更改,方法是:?jiǎn)螕?/span>“記錄”菜單中的“保存記錄”、將焦點(diǎn)移動(dòng)到另一條記錄,或使用 Update 方法。

示例

下列函數(shù)返回特定日期或特定日期以后已發(fā)訂貨的平均運(yùn)費(fèi)。域?yàn)椤癘rders”表。條件參數(shù)根據(jù)給定的國(guó)家/地區(qū)和發(fā)貨日期來(lái)限制生成的記錄集。請(qǐng)注意,關(guān)鍵字 AND 包含在字符串內(nèi),用于分隔條件參數(shù)內(nèi)的多個(gè)字段。包含在 DAvg 函數(shù)計(jì)算內(nèi)的所有記錄都將滿(mǎn)足這兩個(gè)條件。

Public Function AvgFreightCost(ByVal strCountry As String, _

                               ByVal dteShipDate As Date) As Double

    AvgFreightCost = DAvg("[Freight]", "Orders", _

                     "[ShipCountry] = '" & strCountry & _

                     "'AND [ShippedDate] >= #" & dteShipDate & "#")

End Function

若要調(diào)用該函數(shù),請(qǐng)?jiān)凇傲⒓础贝翱谥惺褂孟铝写a行:

:AvgFreightCost "UK", #1/1/96#