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 určené sadě záznamů (doméně). Funkci DCount můžete použít v modulu jazyk Visual Basic for Application (VBA), makru, výrazu dotazu nebo počítaném ovládacím prvku.

Funkci DCount můžete například použít v modulu k vrácení počtu záznamů v tabulce Orders, které odpovídají objednávkám zadaným k určitému datu.

Syntaxe

DCount(výraz, doména* [, kritéria] )

Syntaxe funkce DCount obsahuje tyto argumenty:

Argument Popis
výraz Povinný argument. Výraz určující pole, pro které chcete spočítat záznamy. Může jít buď o řetězcový výraz identifikující pole v tabulce nebo dotazu, nebo výraz, který provádí výpočet s daty daného pole. Výraz může obsahovat název pole tabulky, ovládacího prvku ve formuláři, konstanty nebo funkce. Pokud 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ý slouží k omezení oblasti dat, u které bude provedena funkce DCount . Kritérium je například často ekvivalentem klauzule WHERE ve výrazu SQL bez slova WHERE. Pokud je kritérium vynecháno, funkce DCount vyhodnotí výraz pro celou doménu. Každé pole, které je zahrnuto v kritériu , musí být také polem v doméně; v opačném případě vrátí funkce DCount hodnotu Null.

Poznámky

Pokud nepotřebujete znát jejich konkrétní hodnoty, použijte funkci DCount ke zjištění počtu záznamů v doméně. Ačkoli argument výraz může provést výpočet pole, funkce DCount jednoduše sečte počet záznamů. Hodnota výpočtu provedeného výrazem není k dispozici.

Funkci DCount použijte v počítaném ovládacím prvku, když potřebujete zadat kritéria k omezení oblasti dat, s kterou bude funkce provedena. Pokud chcete například zobrazit počet objednávek, které mají být odeslány do České republiky, nastavte ve vlastnosti Zdroj ovládacího prvku textového pole 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ávání jakýchkoli omezení, použijte funkci Count .

Tip Funkce Count je optimalizovaná tak, aby urychlila počítání záznamů v dotazech. Místo funkce DCount použijte ve výrazu dotazu funkci Count a nastavte volitelná kritéria pro vynucení případných omezení výsledků. Funkci DCount použijte, když potřebujete spočítat záznamy v doméně z modulu kódu nebo makra nebo v počítaném ovládacím prvku.

Pomocí funkce DCount můžete spočítat počet záznamů obsahujících určité pole, které není ve zdroji záznamů, na kterém je daný 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, který je založený na tabulce Výrobky.

Funkce DCount nepočítá záznamy, které obsahují hodnoty Null v poli, na které odkazuje výraz , pokud výraz není zástupný znak hvězdička (*). 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énou tabulka s primárním klíčem, můžete celkový počet záznamů spočítat také nastavením výrazu do pole primárního klíče, protože v poli primárního klíče nikdy nebude hodnota Null .

Pokud výraz identifikuje více polí, oddělte názvy polí operátorem zřetězení, a to buď operátorem ampersand (&) nebo sčítání (+). Pokud k oddělení polí použijete ampersand, vrátí funkce DCount počet záznamů obsahujících data v libovolném z uvedených polí. Pokud použijete operátor sčítání, vrátí funkce DCount jenom počet záznamů obsahujících data ve všech uvedených polích. Následující příklad ukazuje účinky jednotlivých operátorů při použití s polem, které obsahuje data ve všech záznamech (ShipName) a polem, 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 preferovaný operátor pro řetězení řetězců. Měli byste se vyhnout použití operátoru sčítání pro cokoli jiného než číselné sčítání, pokud výslovně nechcete šířit hodnoty Null prostřednictvím výrazu.

Neuložené změny záznamů v doméně nebudou při použití této funkce zahrnuty. Pokud chcete, aby byla funkce DCount založena na změněných hodnotách, je nutné nejdříve změny uložit 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("IDProduktu","Prodej_produktu","Sleva=0") AS Expr1 FROM ProductSales GROUP BY DCount("IDProduktu","ProdejProduktu","Sleva=0"); Vrátí počet hodnot v poli IDProduktu tabulky ProdejVýrobku, kde hodnota Sleva je 0.
SELECT DCount("IDProduktu","ProdejProduktu","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("IDProduktu","ProdejProduktu","DateofSale=Date()-1"); Vrátí počet hodnot v poli IDProduktu tabulky ProdejVýrobku, kde datum prodeje 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 odeslaný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#