Funkce DCount

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Pomocí funkce DCount můžete určit počet záznamů, které jsou v zadané sadě záznamů (doméně). Funkci DCount můžete použít v modulu Jazyka jazyk Visual Basic for Application (VBA), v makrech, výrazu dotazu nebo počítaném ovládacím prvku.

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 to být řetězcový výraz identifikující pole v tabulce nebo dotazu nebo výraz, který provádí výpočet dat v daném poli. V výrazu můžete zahrnout název pole v tabulce, ovládací prvek ve formuláři, konstantu nebo funkci. Pokud výraz obsahuje funkci, může být buď integrovaná, nebo uživatelem definovaná, ale ne jiná doménová agregace nebo agregační funkce 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é se mají odeslat 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ím klíčem, 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 doméně se při použití této funkce nezahrnou. 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#