Funktionen DCount

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan använda funktionen DAntal för att fastställa antalet poster som finns i en angiven uppsättning poster (en domän). Använd funktionen DAntal i en VBA-modul (Visual Basic for Applications), ett makro, ett frågeuttryck eller en beräknad kontroll.

Du kan till exempel använda funktionen DAntal i en modul för att returnera antalet poster i ordertabellen som motsvarar order som lagts ett visst datum.

Syntax

DAntal(uttr, domän* [, villkor] )

Syntaxen för funktionen DAntal har följande argument:

Argument Beskrivning
uttr Obligatoriskt. Ett uttryck där du identifierar det fält för vilket du vill räkna poster. Det kan vara ett stränguttryck som identifierar ett fält i en tabell eller fråga, eller ett uttryck som utför en beräkning på data i det fältet. I uttr kan du ta med namnet på ett fält i en tabell, en kontroll i ett formulär, en konstant eller en funktion. Om uttr innehåller en funktion kan den vara antingen inbyggd eller användardefinierad, men inte någon annan mängdfunktion för domäner eller SQL-mängdfunktioner.
domän Obligatoriskt. Ett stränguttryck där du identifierar den uppsättning poster som utgör domänen. Det kan vara ett tabellnamn eller ett frågenamn för en fråga som inte kräver någon parameter.
villkor Valfritt. Ett stränguttryck som används för att begränsa det dataintervall som DAntal körs på. Villkor motsvarar till exempel ofta WHERE-satsen i ett SQL-uttryck, utan ordet WHERE. Om villkor utelämnas utvärderar funktionen DAntaluttr mot hela domänen. Alla fält som ingår i villkor måste också vara ett fält i domänen. annars returnerar funktionen DAntal null.

Anmärkningar

Använd funktionen DAntal för att räkna antalet poster i en domän när du inte behöver veta deras värden. Även om argumentet uttr kan utföra en beräkning på ett fält, räknar funktionen DAntal bara antalet poster. Värdet för en beräkning som utförs av uttr är inte tillgängligt.

Använd funktionen DAntal är i en beräknad kontroll när du behöver ange specifika villkor för att begränsa det dataområde som funktionen utförs på. Om du till exempel vill visa antalet order som ska levereras till Kalifornien anger du egenskapen Kontrollkälla för en textruta till följande uttryck:

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

Om du bara vill räkna alla poster i domänen utan att ange några begränsningar använder du funktionen Antal .

Tips Funktionen Antal har optimerats för att snabbt räkna antalet poster i frågor. Använd funktionen Antal i ett frågeuttryck i stället för funktionen DAntal, och ange valfria villkor för att framtvinga begränsningar av resultaten. Använd funktionen DAntal när du behöver räkna poster i en domän från en kodmodul eller ett makro, eller i en beräknad kontroll.

Du kan använda funktionen DAntal för att räkna antalet poster som innehåller ett visst fält som inte finns i den datakällan som formuläret eller rapporten baseras på. Du kan till exempel visa antalet order i tabellen Orders i en beräknad kontroll i ett formulär som baseras på tabellen Products.

Funktionen DAntal räknar inte poster som innehåller Null-värden i fältet som uttr refererar till, såvida inte uttr är jokertecknet asterisk (*). Om du använder en asterisk så beräknar DAntal det totala antalet poster, inklusive de som innehåller Null-fält. Följande exempel beräknar antalet poster i tabellen Orders:

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

Om domän är en tabell med en primärnyckel kan du också räkna det totala antalet poster genom att ange uttr till primärnyckelfältet, eftersom det aldrig kommer att finnas ett Null-värde i primärnyckelfältet.

Om uttr identifierar flera fält avgränsar du fältnamnen med en sammanfogningsoperator, antingen ett et-tecken (&) eller additionsoperatorn (+). Om du använder ett et-tecken för att avgränsa fälten returnerar funktionen DAntal det antal poster som innehåller data i något av de listade fälten. Om du använder additionsoperatorn för att avgränsa fälten returnerar funktionen DAntal bara det antal poster som innehåller data i samtliga de listade fälten. I följande exempel visas effekterna av operatorerna när de används med ett fält som innehåller data i alla poster (ShipName) och ett fält som inte innehåller data (ShipRegion).

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

Obs

Et-tecknet är den rekommenderade operatorn för att utföra strängsammanfogning. Undvik att använda additionsoperatorn för allt som inte är numerisk addition, såvida du inte specifikt vill sprida Null-värden via ett uttryck.

Ej sparade ändringar av poster i domän tas inte med när du använder den här funktionen. Om du vill att funktionen DAntal ska baseras på ändrade värden måste du först spara ändringarna genom att klicka på Spara post under Poster på fliken Data , flytta fokus till en annan post eller använda metoden Uppdatera .

Frågeexempel

Uttryck Resultat
SELECT DCount("ProductID","ProductSales","Discount=0") AS Uttr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); Returnerar antalet värden i fältet "ProductID" i tabellen "ProductSales" där värdet "Rabatt" är "0".
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); Returnerar antalet värden i fältet "ProductID" i tabellen "ProductSales" där "DateofSale" är en dag före dagens datum.

VBA-exempel

Obs

I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

Följande funktion returnerar antalet order som levereras till ett visst land eller en viss region efter ett visst leveransdatum. Domänen är tabellen Orders.

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

Använd följande rad med kod i kommandofönstret för att anropa funktionen:

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