DCount-Funktion

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Sie können die DCount-Funktion verwenden, um die Anzahl der Datensätze zu bestimmen, die sich in einer angegebenen Gruppe von Datensätzen (einer Domäne) befinden. Verwenden Sie die Funktion DCount in einem vba-Modul (Visual Basic for Applications), einem Makro, einem Abfrageausdruck oder einem berechneten Steuerelement.

Sie können die DCount-Funktion beispielsweise in einem Modul verwenden, um die Anzahl der Datensätze aus einer Tabelle für Bestellungen zurückzugeben, die Bestellungen entsprechen, die an einem bestimmten Datum aufgegeben wurden.

Syntax

DCount(expr, domain* [, criteria] )

Die Syntax der DCount-Funktion hat die folgenden Argumente:

Argument Beschreibung
Ausdruck Erforderlich. Ein Ausdruck, der das Feld angibt, für das Datensätze gezählt werden sollen. Dabei kann es sich um einen Zeichenfolgenausdruck handeln, der ein Feld in einer Tabelle oder Abfrage identifiziert, oder es kann sich um einen Ausdruck handeln, der eine Berechnung für Daten in diesem Feld ausführt. In Expr können Sie den Namen eines Felds in einer Tabelle, ein Steuerelement in einem Formular, eine Konstante oder eine Funktion einschließen. Wenn expr eine Funktion enthält, kann sie entweder integriert oder benutzerdefinierte sein, aber keine andere Domänenaggregat- oder SQL-Aggregatfunktion.
Domäne Erforderlich. Ein Zeichenfolgenausdruck, der die Gruppe von Datensätzen angibt, die die Domäne bilden. Es kann sich um einen Tabellennamen oder um einen Abfragenamen für eine Abfrage handeln, die keinen Parameter erfordert.
Kriterien Optional. Ein Zeichenfolgenausdruck, der verwendet wird, um den Datenbereich einzuschränken, für den die DCount-Funktion ausgeführt wird. Kriterien entsprechen z . B. häufig der WHERE-Klausel in einem SQL-Ausdruck ohne das Wort WHERE. Wenn Kriterien nicht angegeben werden, wertet die DCount-Funktionexpr für die gesamte Domäne aus. Jedes Feld, das in Kriterien enthalten ist, muss ebenfalls ein Feld in der Domäne sein; Andernfalls gibt die DCount-Funktion einen Null-Wert zurück.

Hinweise

Verwenden Sie die DCount-Funktion, um die Anzahl der Datensätze in einem Bereich (Domäne) zu zählen, wenn Sie deren einzelne Werte nicht wissen müssen. Obwohl das Expr-Argument eine Berechnung für ein Feld ausführen kann, berechnet die DCount-Funktion einfach die Anzahl der Datensätze. Der Wert einer berechnung, die von expr ausgeführt wird, ist nicht verfügbar.

Verwenden Sie die DCount-Funktion in einem berechneten Steuerelement, wenn Sie Kriterien zum Beschränken des Datenbereichs angeben möchten, für den die Funktion ausgeführt wird. Um beispielsweise die Anzahl der Bestellungen anzuzeigen, die nach Kalifornien versendet werden sollen, legen Sie die ControlSource-Eigenschaft eines Textfelds auf den folgenden Ausdruck fest:

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

Wenn Sie einfach alle Datensätze in der Domäne zählen möchten, ohne Einschränkungen anzugeben, verwenden Sie die Count-Funktion .

Tipp Die Count-Funktion wurde optimiert, um die Zählung von Datensätzen in Abfragen zu beschleunigen. Verwenden Sie in einem Abfrageausdruck die Count-Funktion anstelle der DCount-Funktion, und legen Sie optionale Kriterien fest, um jegliche Einschränkungen für die Ergebnisse zu erzwingen. Verwenden Sie die DCount-Funktion, wenn Sie Datensätze in einem Bereich (Domäne) aus einem Codemodul oder Makro oder in einem berechneten Steuerelement zählen müssen.

Sie können die DCount-Funktion verwenden, um die Anzahl von Datensätzen zu zählen, die ein bestimmtes Feld enthalten, das nicht zu der Datensatzquelle gehört, auf dem Ihr Formular oder Bericht basiert. Beispielsweise könnten Sie die Anzahl von Bestellungen in der Tabelle für Bestellungen (Orders) in einem berechneten Steuerelement auf einem Formular anzeigen, das auf der Tabelle für Produkte (Products) basiert.

Die DCount-Funktion zählt keine Datensätze, die NULL-Werte in dem Feld enthalten, auf das von expr verwiesen wird, es sei denn , expr ist das Sternchen (*) Platzhalterzeichen. Wenn Sie ein Sternchen verwenden, berechnet die DCount-Funktion die Gesamtanzahl der Datensätze, einschließlich der Datensätze, die NULL-Felder enthalten. Im folgenden Beispiel wird die Anzahl von Datensätzen in einer Tabelle für Bestellungen berechnet:

intX = DCount("*", "Orders")

Wenn domäne eine Tabelle mit einem Primärschlüssel ist, können Sie auch die Gesamtzahl der Datensätze zählen, indem Sie expr auf das Primärschlüsselfeld festlegen, da im Primärschlüsselfeld nie null vorhanden ist.

Wenn expr mehrere Felder identifiziert, trennen Sie die Feldnamen durch einen Verkettungsoperator, entweder durch ein kaufmännisches und -Zeichen (&) oder den Additionsoperator (+). Wenn Sie zum Trennen der Felder ein kaufmännisches Und-Zeichen verwenden, gibt die DCount-Funktion die Anzahl der Datensätze zurück, die Daten in einem der aufgelisteten Felder enthalten. Wenn Sie den Additionsoperator verwenden, gibt die DCount-Funktion nur die Anzahl der Datensätze zurück, die Daten in allen aufgelisteten Feldern enthalten. Im folgenden Beispiel werden die Auswirkungen der einzelnen Operatoren veranschaulicht, wenn es mit einem Feld verwendet wird, das Daten in allen Datensätzen (ShipName) enthält, und einem Feld, das keine Daten enthält (ShipRegion).

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

Hinweis

Das kaufmännische Und-Zeichen ist der bevorzugte Operator zum Verketten von Zeichenfolgen. Sie sollten den Additionsoperator ausschließlich für numerische Additionen verwenden, es sei denn, Sie möchten Nullwerte explizit durch einen Ausdruck weitergeben.

Nicht gespeicherte Änderungen an Datensätzen in der Domäne sind nicht enthalten, wenn Sie diese Funktion verwenden. Wenn die DCount-Funktion auf den geänderten Werten basieren soll, müssen Sie die Änderungen zunächst speichern, indem Sie auf der Registerkarte Daten unter Datensätze auf Datensatz speichern klicken, den Fokus auf einen anderen Datensatz verschieben oder die Update-Methode verwenden.

Abfragebeispiele

Ausdruck Ergebnisse
SELECT DCount("ProductID","ProductSales";"Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); Gibt die Anzahl der Werte im Feld "ProductID" der Tabelle "ProductSales" zurück, bei der der Wert "Discount" "0" ist.
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); Gibt die Anzahl der Werte im Feld "ProductID" der Tabelle "ProductSales" zurück, wobei "DateofSale" einen Tag vor dem aktuellen Datum ist.

VBA-Beispiel

Hinweis

Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.

Die folgende Funktion gibt die Anzahl von Bestellungen zurück, die am angegebenen Lieferdatum (dteShipDate) in ein angegebenes Land (strCountry) geliefert wurden. Der Bereich (Domäne) ist eine Tabelle für Bestellungen.

Public Function OrdersCount _
    (ByVal strCountryRegion As String, _
    ByVal dteShipDate As Date) As Integer
    OrdersCount = DCount("[ShippedDate]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

Verwenden Sie die folgende Codezeile im Direktfenster, um die Funktion aufzurufen:

:OrdersCount "UK", #1/1/96#