DSum 函數(shù)

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

expandtri全部顯示

DSum 函數(shù)用于計(jì)算指定記錄集(一個(gè))中的一組值的總和。可以在 Visual Basic、、查詢表達(dá)式或計(jì)算控件中使用 DSum 函數(shù)。

例如,可以在查詢的計(jì)算字段表達(dá)式中使用 DSum 函數(shù)來計(jì)算一段時(shí)期某個(gè)特定雇員的總銷售額。也可以在計(jì)算控件中使用 DSum 函數(shù)來顯示特定產(chǎn)品的動(dòng)態(tài)銷售總和。

DSum(expr, domain, [criteria])

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

參數(shù)

說明

expr

表達(dá)式,用于標(biāo)識(shí)要對(duì)其值作總計(jì)的字段。可以是指向表或查詢中字段的字符串表達(dá)式,也可以是以該字段中的數(shù)據(jù)進(jìn)行計(jì)算的表達(dá)式。在 expr 中可以包括表中字段的名稱、窗體上的控件、常量或函數(shù)。如果 expr 包含函數(shù),那么它可以是內(nèi)置的,也可以是用戶定義的,但不能是另一個(gè)域聚合函數(shù)或 SQL 聚合函數(shù)。

domain

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

criteria

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

 

說明

如果沒有記錄滿足 criteria 參數(shù)或者域中不包含任何記錄,DSum 函數(shù)將返回 Null。

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

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

注釋  可以在總計(jì)查詢的計(jì)算字段表達(dá)式中使用 DSumSum 函數(shù)。如果使用 DSum 函數(shù),將在數(shù)據(jù)分組之前計(jì)算總計(jì)值。如果使用 Sum 函數(shù),則在分組之后計(jì)算字段表達(dá)式中值的總計(jì)值。

如果需要顯示窗體或報(bào)表記錄源以外的字段值的總和,可能需要使用 DSum 函數(shù)。例如,如果有一個(gè)窗體顯示有關(guān)一種特定產(chǎn)品的信息??梢栽谟?jì)算控件中使用 DSum 函數(shù)來計(jì)算這種產(chǎn)品銷售額的運(yùn)行總和。

blueup提示

RunningSumDSum

注釋  使用該函數(shù)時(shí),將不包括對(duì) domain 記錄的未保存更改。如果希望 DSum 函數(shù)基于更改后的數(shù)據(jù),必須先保存更改。方法是:單擊“記錄”菜單上的“保存記錄”、將焦點(diǎn)移動(dòng)到另一條記錄,或使用 Update 方法。

示例

下面的示例計(jì)算運(yùn)往英國的訂單的“Freight”字段的總計(jì)值。域?yàn)椤癘rders”表。criteria 參數(shù)將記錄集的結(jié)果限制為“ShipCountry”等于 UK 的記錄。

Dim curX As Currency

curX = DSum("[Freight]", "Orders", "[ShipCountry] = 'UK'")

下一個(gè)示例通過使用兩個(gè)不同的條件來計(jì)算總計(jì)。注意單引號(hào)(')和數(shù)字符號(hào)(#)需要包括在字符串表達(dá)式中,使得字符串連接時(shí),將原義字符串包含在單引號(hào)中,將日期包含在數(shù)字符號(hào)中。

Dim curX As Currency

curX = DSum("[Freight]", "Orders", _

    "[ShipCountry] = 'UK' AND [ShippedDate] > #1-1-95#")

可以在更新查詢的“更新到”行中使用域函數(shù)。例如,如果要跟蹤“Products”表中各產(chǎn)品的當(dāng)前銷售情況,可以將一個(gè)名為 SalesSoFar 的新字段添加到“Products”表中,并運(yùn)行一個(gè)更新查詢來計(jì)算正確的值并更新記錄。首先,基于“Products”表新建一個(gè)查詢,再單擊“查詢”菜單上的“更新查詢”。然后,將 SalesSoFar 字段添加到查詢網(wǎng)格,并將下列內(nèi)容輸入到“更新到”行中:

DSum("[Quantity]*[UnitPrice]", "Order Details", "[ProductID] = " _

    & [ProductID])

在運(yùn)行查詢時(shí),Microsoft Access 將根據(jù)“Order Details”表中的信息計(jì)算每種產(chǎn)品的銷售總量。每種產(chǎn)品的銷售總和將添加到“Products”表中。