Pomocí funkce DCount můžete určit počet záznamů, které jsou v zadané sadě záznamů ( Doména ). Použijte funkci DCount v modulu jazyka Visual Basic for Applications (VBA), Makro, výraz dotazu nebo Vypočítaný ovládací prvek.
Pomocí funkce DCount v modulu můžete například vrátit počet záznamů v tabulce Objednávky, které odpovídají objednávkám zadaným k určitému datu.
Syntaxe
DCount ( výraz , doména [, kritéria] )
Syntaxe funkce DCount má tyto argumenty:
Argument |
Popis |
výraz |
Povinný argument. Výraz, který identifikuje pole, pro které chcete spočítat záznamy. Může jít buď o Řetězcový výraz, který určuje pole v tabulce nebo dotazu, nebo výraz, jehož prostřednictvím je proveden výpočet s daty daného pole. Argument výraz může obsahovat název pole tabulky, ovládacího prvku ve formuláři, konstanty nebo funkce. Pokud argument výraz obsahuje funkci, může jít o předdefinovanou funkci nebo funkci definovanou uživatelem, ale nikoli o jinou doménovou agregační funkci nebo agregační funkci SQL. |
doména |
Povinný argument. Řetězcový výraz identifikuje sadu záznamů tvořících doménu. Může jít o název tabulky nebo název dotazu, který nevyžaduje parametr. |
kritéria |
Nepovinný argument. Řetězcový výraz, který se používá k omezení rozsahu dat, na kterém se provádí funkce DCount . Například kritéria jsou často ekvivalentní klauzuli WHERE ve výrazu SQL bez slova WHERE. Pokud jsou kritéria vynechána, funkce DCount vyhodnotí výraz vůči celé doméně. Každé pole, které je součástí kritérií , musí být také polem v doméně; V opačném případě funkce DCount vrátí hodnotu Null. |
Poznámky
Pomocí funkce DCount můžete spočítat počet záznamů v doméně, když nepotřebujete znát jejich konkrétní hodnoty. I když argument expr může provést výpočet pole, funkce DCount jednoduše sčítá počet záznamů. Hodnota jakéhokoli výpočtu provedeného výrazem není k dispozici.
Funkci DCount v počítaném ovládacím prvku použijte v případech, kdy potřebujete zadat kritéria pro omezení rozsahu dat, na kterém se funkce provádí. Pokud například chcete zobrazit počet objednávek, které mají být expedovány do Kalifornie, nastavte vlastnost ControlSource textového pole na následující výraz:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Pokud chcete jednoduše spočítat všechny záznamy v doméně bez zadání jakýchkoli omezení, použijte funkci Count .
Tip Funkce Count je optimalizovaná tak, aby urychlila počítání záznamů v dotazech. Použijte funkci Count ve výrazu dotazu místo funkce DCount a nastavte volitelná kritéria pro vynucení jakýchkoli omezení výsledků. Funkci DCount použijte, když potřebujete spočítat záznamy v doméně z modulu kódu, makra nebo počítaný ovládací prvek.
Pomocí funkce DCount můžete spočítat počet záznamů obsahujících konkrétní pole, které není ve zdroji záznamů, na kterém je formulář nebo sestava založená. Můžete například zobrazit počet objednávek v tabulce Objednávky v počítaném ovládacím prvku ve formuláři založeném na tabulce Produkty.
Funkce DCount nepočítá záznamy, které obsahují hodnoty Null v poli odkazovaném výrazem, pokud výraz není zástupný znak hvězdičky (*). Pokud použijete hvězdičku, funkce DCount vypočítá celkový počet záznamů, včetně těch, které obsahují pole s hodnotou Null . Následující příklad vypočítá počet záznamů v tabulce Orders.
intX = DCount("*", "Orders")
Pokud je doména tabulka s Primární klíč, můžete také spočítat celkový počet záznamů nastavením výrazu na pole primárního klíče, protože pole primárního klíče nikdy nebude obsahovat hodnotu Null .
Pokud výraz identifikuje více polí, oddělte názvy polí operátorem zřetězení, buď ampersandem (&), nebo operátorem sčítání (+). Pokud k oddělení polí použijete ampersand, vrátí funkce DCount počet záznamů obsahujících data v některém z uvedených polí. Pokud použijete operátor sčítání, vrátí funkce DCount pouze počet záznamů obsahujících data ve všech uvedených polích. Následující příklad ukazuje účinky každého operátoru při použití s polem, které obsahuje data ve všech záznamech (ShipName) a pole, které neobsahuje žádná data (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Poznámka: Ampersand je upřednostňovaným operátorem pro zřetězení řetězců. Operátor sčítání byste neměli používat pro cokoli jiného než číselné sčítání, pokud nechcete konkrétně šířit hodnoty Null prostřednictvím výrazu.
Neuložené změny záznamů v argumentu doména nebudou při použití této funkce zahrnuty. Pokud chcete, aby byla funkce DCount založená na změněné hodnotě, musíte nejprve uložit změny kliknutím na Uložit záznam v části Záznamy na kartě Data , přesunutím fokusu na jiný záznam nebo pomocí metody Update .
Příklady dotazů
Výraz |
Výsledky |
SELECT DCount("ProductID";"ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("Idproduktu";"ProduktSales";"Discount=0"); |
Vrátí počet hodnot v poli ProductID tabulky ProductSales, kde hodnota Discount je 0. |
SELECT DCount("Idproduktu";"ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID";"ProductSales","DateofSale=Date()-1"); |
Vrátí počet hodnot v poli ProductID tabulky ProductSales, kde DateofSale je den před aktuálním datem. |
Příklad jazyka VBA
Poznámka: Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.
Následující funkce vrátí počet objednávek expedovaných do zadané země nebo oblasti po zadaném datu expedice. Doménou je tabulka 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
Pokud chcete funkci volat, použijte následující řádek kódu v okně Hodnoty:
:OrdersCount "UK", #1/1/96#