使用 Dcount 函數(shù)可以確定特定記錄集(一個域)中的記錄數(shù)。可以在 Visual Basic、宏、查詢表達式,或計算控件中使用 DCount 函數(shù)。
例如,可以在模塊中使用 Dcount 函數(shù),以返回“訂單”表中對應(yīng)于特定日期的訂單數(shù)。
DCount(expr, domain, [criteria])
DCount 函數(shù)具有下列參數(shù):
參數(shù) |
說明 |
expr |
一個表達式,代表要統(tǒng)計其記錄數(shù)的字段。可以是標識表或查詢中字段的字符串表達式,也可以是對該字段上的數(shù)據(jù)進行計算的表達式。在 expr 中可以包括表中字段的名稱、窗體上的控件、常量或函數(shù)。如果 expr 包括函數(shù),它既可以是內(nèi)置的,也可以是用戶定義的,但不能是另一個域聚合函數(shù)或 SQL 聚合函數(shù)。 |
domain |
字符串表達式,代表組成域的記錄集??梢允潜砻Q或不需要參數(shù)的查詢名稱。 |
criteria |
可選的字符串表達式,用于限制 DCount 函數(shù)執(zhí)行的數(shù)據(jù)范圍。例如,criteria 通常等價于 SQL 表達式中的 WHERE 子句,只是不含 WHERE 關(guān)鍵字。如果忽略 criteria,DCount 函數(shù)在整個域的范圍內(nèi)計算 expr。任何包含在 criteria 中的字段必須同時也是 domain 中的字段;否則 Dcount 函數(shù)將返回 Null。 |
在不需要知道記錄特定值的時候,可以使用 DCount 函數(shù)來計算域中的記錄數(shù)。雖然 expr 參數(shù)可以對字段執(zhí)行計算,但 DCount 函數(shù)只返回記錄數(shù)。任何由 expr 執(zhí)行計算所得的值都是不可用的。
當需指定條件來限制函數(shù)執(zhí)行的數(shù)據(jù)范圍時,應(yīng)在計算控件中使用 DCount 函數(shù)。例如,要顯示運往 California 的訂單數(shù),可將文本框的 ControlSource 屬性設(shè)為如下表達式:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
如果只是統(tǒng)計 domain 中的所有記錄而不指定任何限制,則可以使用 Count 函數(shù)。
使用 DCount 函數(shù)可以計算包含特定字段的記錄數(shù),該字段不在窗體或報表所基于的記錄源中。例如,在基于“產(chǎn)品”表的窗體中,其計算控件中可以顯示“訂單”表中的訂單數(shù)。
DCount 函數(shù)在計數(shù)記錄時,不包括由 expr 引用的字段中含有 Null 值的記錄,除非 expr 參數(shù)為星號(*)通配符。如果使用了星號,DCount 函數(shù)將計算所有記錄的總數(shù),包括含有 Null 字段的記錄。下面的示例將計算“Orders”表中的記錄數(shù)。
intX = DCount("*", "Orders")
如果 domain 是一個包含主鍵的表,也可以將 expr 設(shè)為主鍵字段來計算總記錄數(shù),因為主鍵字段不可能為 Null。
如果 expr 指定多個字段,應(yīng)使用連接運算符分隔各字段名,即和字符(&)或加號運算符(+)。如果使用(&)分隔字段,Dcount 函數(shù)將返回在列出的任一字段中含有數(shù)據(jù)的記錄數(shù)。如果使用加號運算符,Dcount 函數(shù)將只返回在所有列出字段中都含有數(shù)據(jù)的記錄數(shù)。下面的示例說明了使用這兩種運算符的結(jié)果,它們連接所有記錄中均包含數(shù)據(jù)的字段(ShipName)和不包含數(shù)據(jù)的字段(ShipRegion)。
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
注釋 和字符(&)在執(zhí)行字符串連接時是首選的運算符。在除加法以外的其他情況下,應(yīng)盡量避免使用加法運算符,除非特地需要在表達式中產(chǎn)生 Null 值。
使用該函數(shù)時,domain 中未保存更改的記錄將不包括在內(nèi)。如果要讓 DCount 函數(shù)以更改后的數(shù)據(jù)為基礎(chǔ),必須先保存更改。方法是單擊“記錄”菜單上的“保存記錄”,或是將焦點移動到另一個控件,或使用 Update 方法。
下面的函數(shù)返回在發(fā)貨日期之后發(fā)送到指定國家/地區(qū)的訂單數(shù)量。域為“Orders”表。
Public Function OrdersCount(ByVal strCountry As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountry] = '" & strCountry & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
若要調(diào)用該函數(shù),請在“立即”窗口中使用下列代碼:
:OrdersCount "UK", #1/1/96#