Applies ToAccess för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan använda funktionen DAntal till att avgöra hur många poster det 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 där du identifierar ett fält i en tabell eller en fråga, eller vara ett uttryck där du utför en beräkning på data i 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 det vara en inbyggd eller användardefinierad funktion, men inte någon annan mängdfunktion för domäner eller en SQL-mängdfunktion.

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å. Till exempel motsvarar villkor ofta WHERE-satsen i ett SQL-uttryck, utan ordet WHERE. Om villkor utelämnas så utvärderas uttr i funktionen DAntal mot hela domänen. Alla fält som ingår i villkor måste också vara fält i domän, annars returnerar funktionen DAntalNull.

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 så räknar DAntal bara antalet poster. Värdet för en eventuell beräkning som utförs av uttr blir 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än utan att ange villkor, 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 det fält 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 även räkna det totala antalet poster genom att ange uttr till primärnyckelfältet, eftersom värdet Null inte kan finnas i primärnyckelfältet.

Om uttr identifierar flera fält avgränsar du fältnamnen med en operator för textkombination, 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 och flytta fokus till en annan post, eller genom att 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#

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.