U kunt de functie DCount gebruiken om het aantal records in een opgegeven recordset (een domein) te bepalen. Gebruik de functie DCount in een Visual Basic for Applications-module (VBA), 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 reeksexpressie zijn waarmee een veld van een tabel of query wordt aangegeven of een expressie die een berekening uitvoert op de gegevens die zich in dat veld bevinden. In expr kunt u de naam van een veld in een tabel opnemen, een besturingselement van een formulier, een constante of een functie. Als expr een functie bevat, kan dit een ingebouwde functie of een door een gebruiker gedefinieerde functie zijn, maar niet nog een statistische domein- of 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 DCount alleen het aantal records geteld. De waarde die het resultaat is van een berekening met expr 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 moet worden verzonden naar Californië, stelt u de eigenschap ControlSource van een tekstvak in op de volgende expressie:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Als u alleen alle records in domein wilt tellen zonder enige beperkingen op te geven, gebruikt u de functie Count.
Tip De functie Count is geoptimaliseerd voor het snel tellen van records in query's. 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.
Null-waarden in het veld waarnaar wordt verwezen met expr worden niet meegeteld door DCount, tenzij voor expr het jokerteken * is opgegeven. 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 is met een primaire sleutel, kunt u het totale aantal records ook tellen door expr in te stellen op het primaire-sleutelveld, aangezien dat veld nooit een Null bevat.
Als expr naar meerdere velden verwijst, scheidt u de veldnamen met een samenvoegingsoperator, te weten het en-teken (&) of het plusteken (+). 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 methode Update 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#