DCount, functie
Van toepassing op
U kunt de functie DCount gebruiken om het aantal records te bepalen dat zich in een opgegeven set records (een domein) bevindt. Gebruik de functie DCount in een VBA-module (Visual Basic for Applications), een macro, een query-expressie of een berekend besturingselement.
U kunt de functie DCount bijvoorbeeld gebruiken in een module om het aantal records in een ordertabel op te vragen die overeenkomen met de orders die op een bepaalde datum zijn geplaatst.
Syntaxis
DCount(expr, domein* [, criteria] )
De syntaxis van de functie DCount bevat de volgende argumenten:
| Argument | Beschrijving |
|---|---|
| expr | Vereist. Een expressie die het veld aangeeft waarvoor u het aantal records wilt tellen. Dit kan een tekenreeksexpressie zijn waarmee een veld in een tabel of query wordt geïdentificeerd, of het kan een expressie zijn waarmee een berekening wordt uitgevoerd op gegevens in dat veld. In expr kunt u de naam van een veld in een tabel, een besturingselement op een formulier, een constante of een functie opnemen. Als expr een functie bevat, kan deze zijn ingebouwd of door de gebruiker gedefinieerd, maar niet een andere domeinaggregatie of statistische SQL-functie. |
| domein | Vereist. Een tekenreeksexpressie waarmee de set records wordt aangegeven waaruit het domein bestaat. Dit kan de naam van een tabel zijn of de naam van een query waarvoor geen parameter nodig is. |
| criteria | Optioneel. Een tekenreeksexpressie die wordt gebruikt om het bereik van gegevens te beperken waarop de functie DCount wordt uitgevoerd. Criteria is bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als criteria worden weggelaten, evalueert de functie DCountexpr op basis van het hele domein. Elk veld dat is opgenomen in criteria , moet ook een veld in het domein zijn; anders retourneert de functie DCount een Null. |
Opmerkingen
Gebruik de functie DCount om het aantal records in een domein te tellen als u niet de specifieke waarden hoeft te weten. Hoewel met het argument expr een berekening kan worden uitgevoerd op een veld, wordt met de functie DCount eenvoudig het aantal records gerekt. De waarde van een berekening die door expr wordt uitgevoerd, is niet beschikbaar.
Gebruik de functie DCount in een berekend besturingselement wanneer u criteria wilt opgeven om het gegevensbereik te beperken waarop de functie wordt uitgevoerd. Als u bijvoorbeeld het aantal orders wilt weergeven dat naar Californië moet worden verzonden, stelt u de eigenschap ControlSource van een tekstvak in op de volgende expressie:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Als u alleen alle records in het domein wilt tellen zonder beperkingen op te geven, gebruikt u de functie Aantal .
Tip De functie Aantal is geoptimaliseerd om het tellen van records in query's te versnellen. Gebruik de functie Count in plaats van DCount in een query-expressie en stel optionele criteria in voor het afdwingen van beperkingen voor de resultaten. Gebruik de functie DCount wanneer u records in een domein moet tellen vanuit een codemodule of macro, of in een berekend besturingselement.
U kunt de functie DCount gebruiken om het aantal records met een bepaald veld te tellen dat niet is opgenomen in de recordbron waarop het formulier of rapport is gebaseerd. U kunt bijvoorbeeld het aantal orders in de tabel Orders weergeven in een berekend besturingselement in een formulier op basis van de tabel Producten.
De functie DCount telt geen records die Null-waarden bevatten in het veld waarnaar wordt verwezen door expr , tenzij expr het sterretje (*) jokerteken is. Als u het jokerteken * gebruikt, wordt met DCount het totale aantal records berekend, inclusief records met Null-velden. In het volgende voorbeeld wordt het aantal records in de tabel Orders berekend.
intX = DCount("*", "Orders")
Als domein een tabel met een primaire sleutel is, kunt u ook het totale aantal records tellen door expr in te stellen op het primaire-sleutelveld, omdat het primaire sleutelveld nooit een Null bevat.
Als expr meerdere velden identificeert, scheidt u de veldnamen met een samenvoegingsoperator, een ampersand (&) of de optellingsoperator (+). Als u het en-teken gebruikt om de velden te scheiden, retourneert de functie DCount het aantal records met gegevens in een van de opgegeven velden. Als u het plusteken gebruikt, retourneert DCount alleen het aantal records met gegevens in alle opgegeven velden. In het volgende voorbeeld ziet u het effect van elke operator bij gebruik met een veld dat gegevens bevat in alle records (ShipName) en met een veld dat geen gegevens bevat (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Opmerking
Het en-teken is de operator die bij voorkeur wordt gebruikt voor het aaneenvoegen van tekenreeksen. Gebruik het optelteken alleen voor het optellen van numerieke waarden, tenzij u specifiek Null-waarden wilt doorvoeren via een expressie.
Niet-opgeslagen wijzigingen in records in domein worden niet opgenomen wanneer u deze functie gebruikt. Als u wilt dat de functie DCount is gebaseerd op de gewijzigde waarden, moet u de wijzigingen eerst opslaan door te klikken op Record opslaan onder Records op het tabblad Gegevens , de focus naar een andere record te verplaatsen of door de updatemethode te gebruiken.
Queryvoorbeelden
| Expression | Resultaten |
|---|---|
| SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductAles GROUP BY DCount("ProductID","ProductSales","Discount=0"); | Retourneert het aantal waarden in het veld 'ProductID' van de tabel 'ProductVerkoop' waarbij de waarde 'Korting' '0' is. |
| SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductAles GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); | Retourneert het aantal waarden in het veld 'ProductID' van de tabel 'ProductSales' waarbij 'DateofSale' een dag vóór de huidige datum ligt. |
VBA-voorbeeld
Opmerking
In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.
De volgende functie retourneert het aantal orders dat na een opgegeven verzenddatum naar een bepaald land of een bepaalde regio is verzonden. Het domein is de tabel 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
U kunt de functie aanroepen met de volgende code in het venster Direct:
:OrdersCount "UK", #1/1/96#