Funkciu DCount môžete použiť na určenie počtu záznamov, ktoré sa nachádzajú v zadanej množine záznamov (doméne). Použite funkciu DCount v module Visual Basic for Applications (VBA), makre, výraze dotazu alebo vypočítavanom ovládacom prvku.
V module môžete napríklad použiť funkciu DCount na vrátenie počtu záznamov v tabuľke Objednávky, ktoré zodpovedajú objednávkam zadaným v určitom dátume.
Syntax
DCount(výraz; doména* [, kritériá] )
Syntax funkcie DCount má tieto argumenty:
| Argument | Popis |
|---|---|
| výraz | Povinný argument. Výraz určujúci pole, pre ktoré chcete spočítať záznamy. Môže to byť reťazcový výraz identifikujúci pole v tabuľke alebo dotaze, alebo to môže byť výraz, ktorý vykoná výpočet s údajmi v danom poli. Do výrazu môžete zahrnúť názov poľa v tabuľke, ovládací prvok vo formulári, konštantu alebo funkciu. Ak výraz obsahuje funkciu, môže byť vstavaná alebo používateľom definovaná, ale nie agregačná funkcia inej domény alebo agregačná funkcia SQL. |
| doména | Povinný argument. Výraz reťazca určujúci množinu záznamov, ktoré vytvárajú doménu. Môže to byť názov tabuľky alebo názov pre dotaz, ktorý nevyžaduje parameter. |
| kritériá | Voliteľný argument. Výraz reťazca slúžiaci na obmedzenie rozsahu údajov, ktoré spracuje funkcia DCount. Kritériá sú napríklad často ekvivalentné klauzule WHERE vo výraze SQL bez slova WHERE. Ak sa vynechá kritérium , funkcia DCount vyhodnotí výraz voči celej doméne. Každé pole, ktoré je zahrnuté v kritériách , musí byť aj poľom v doméne. V opačnom prípade funkcia DCount vráti hodnotu Null. |
Poznámky
Funkciu DCount použite na spočítanie počtu záznamov v doméne, keď nepotrebujete poznať ich konkrétne hodnoty. Hoci výraz argument môže vykonať výpočet v poli, funkcia DCount jednoducho spočíta počet záznamov. Hodnota akéhokoľvek výpočtu vykonaného výrazom nie je k dispozícii.
Funkciu DCount použite pri vypočítavanom ovládacom prvku, keď potrebujete zadať kritériá na ohraničenie rozsahu údajov, s ktorými sa funkcia vykoná. Ak chcete napríklad zobraziť počet objednávok, ktoré sa majú dopraviť do Kalifornie, nastavte vlastnosť ControlSource textového poľa na nasledujúci výraz:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Ak chcete jednoducho spočítať všetky záznamy v doméne bez zadania obmedzení, použite funkciu Count .
Tip Funkcia Count bola optimalizovaná tak, aby urýchlila počítanie záznamov v dotazoch. Použite funkciu Count vo výraze dotazu namiesto funkcie DCount a nastavte voliteľné kritériá, ktoré vo výsledkoch uplatnia ľubovoľné obmedzenia. Funkciu DCount použite vtedy, keď musíte spočítať záznamy v doméne z prostredia modulu alebo makra, alebo vo vypočítavanom ovládacom prvku.
Funkciu DCount môžete použiť na spočítanie počtu záznamov obsahujúcich určité pole, ktoré sa nenachádza v zdroji záznamov, na ktorom je založený váš formulár alebo zostava. Môžete napríklad zobraziť počet objednávok v tabuľke Objednávky vo vypočítanom ovládacom prvku vo formulári založenom na tabuľke Produkty.
Funkcia DCount nepočíta záznamy obsahujúce nulové hodnoty v poli, na ktoré odkazuje výraz , pokiaľ výraz nie je zástupným znakom hviezdičky (*). Ak použijete hviezdičku, funkcia DCount vypočíta celkový počet záznamov, vrátane tých, ktoré obsahujú polia s hodnotou Null. Nasledujúci príklad vypočíta počet záznamov v tabuľke Objednávky.
intX = DCount("*", "Orders")
Ak je doména tabuľkou s hlavným kľúčom, môžete tiež spočítať celkový počet záznamov nastavením výrazu na pole hlavného kľúča, pretože v poli hlavného kľúča nikdy nebude hodnota Null .
Ak výraz identifikuje viacero polí, oddeľte názvy polí operátorom zreťazenia, buď znakom ampersand (&) alebo operátorom sčítania (+). Ak na oddelenie polí použijete znak ampersand, funkcia DCount vráti počet záznamov obsahujúcich údaje v ktoromkoľvek z uvedených polí. Ak použijete operátor sčítania, funkcia DCount vráti iba počet záznamov obsahujúcich údaje vo všetkých uvedených poliach. Nasledujúci príklad ukazuje účinky každého operátora pri použití s poľom, ktoré obsahuje údaje vo všetkých záznamoch (ShipName) a poli, ktoré neobsahuje žiadne údaje (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Poznámka
Ampersand je preferovaný operátor na vykonanie zreťazenia reťazca. Operátor sčítania by ste nemali používať na žiadne iné úkony okrem sčítania číselných hodnôt, pokiaľ vyslovene nechcete rozšíriť hodnoty Null cez celý výraz.
Neuložené zmeny záznamov v doméne sa pri používaní tejto funkcie nezahrnú. Ak chcete, aby bola funkcia DCount založená na zmenených hodnotách, musíte zmeny najprv uložiť kliknutím na položku Uložiť záznam v časti Záznamy na karte Údaje , premiestnením zamerania na iný záznam alebo použitím metódy Update .
Príklady dotazu
| Výraz | Výsledky |
|---|---|
| SELECT DCount("ProductID","ProductSales";"Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID";"PredajProduktov";"Zľava=0"); | Vráti počet hodnôt v poli "ProductID" tabuľky PredajProduktov, kde hodnota "Zľava" je "0". |
| SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); | Vráti počet hodnôt v poli "ProductID" tabuľky PredajProduktov, kde "DateofSale" je deň pred aktuálnym dátumom. |
Príklad jazyka VBA
Poznámka
Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.
Nasledujúca funkcia vráti počet objednávok odoslaných do zadanej krajiny alebo oblasti po zadanom dátumu odoslania. Doménou je tabuľka Objednávky.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function
Na zavolanie danej funkcie použite nasledujúci riadok kódu v okne Okamžité:
:OrdersCount "UK", #1/1/96#