Du kan bruke dantallfunksjonen til å bestemme hvor mange poster som er i et angitt sett med poster (en domene ). Bruk DCount-funksjonen i en VBA-modul (Visual Basic for Applications), en makro, et spørringsuttrykk eller en beregnet kontroll.
Du kan for eksempel bruke dantallfunksjonen i en modul til å returnere antall poster i en ordretabell som tilsvarer ordrer som er plassert på en bestemt dato.
Syntaks
DCount ( uttrykk , domene [, vilkår] )
Syntaksen for funksjonen Dantall har følgende argumenter:
Argument |
Beskrivelse |
uttr |
Obligatorisk. Et uttrykk som identifiserer feltet du vil telle poster for. Det kan være et strenguttrykk som identifiserer et felt i en tabell eller spørring, eller det kan være et uttrykk som utfører beregninger på data i det feltet. I uttr kan du ta med navnet på et felt i en tabell, en kontroll på et skjema, en konstant eller en funksjon. Hvis uttr inneholder en funksjon, kan den være innebygd eller brukerdefinert, men ikke en annen domenemengde- eller SQL-mengdefunksjon. |
domene |
Obligatorisk. En streng som identifiserer settet med poster som utgjør domenet. Det kan være enten et tabellnavn eller et spørringsnavn for en spørring som ikke krever en parameter. |
vilkår |
Valgfritt. Et strenguttrykk som brukes til å begrense dataområdet der Dantall-funksjonen utføres. Vilkår tilsvarer for eksempel ofte WHERE-setningen i et SQL-uttrykk, uten ordet WHERE. Hvis vilkår utelates, evaluerer DCount-funksjonenuttr mot hele domenet. Alle felt som er inkludert i vilkår, må også være et felt i domenet. Ellers returnerer DCount-funksjonen en Null. |
Merknader
Bruk dantallfunksjonen til å telle antall poster i et domene når du ikke trenger å vite de bestemte verdiene. Selv om uttr-argumentet kan utføre en beregning på et felt, teller dantallfunksjonen ganske enkelt antall poster. Verdien for alle beregninger som utføres av uttr , er ikke tilgjengelig.
Bruk dantallfunksjonen i en beregnet kontroll når du må angi vilkår for å begrense dataområdet som funksjonen utføres på. Hvis du for eksempel vil vise antall ordrer som skal sendes til California, angir du egenskapen ControlSource for en tekstboks til følgende uttrykk:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Hvis du bare vil telle alle postene i domenet uten å angi noen begrensninger, bruker du Antall-funksjonen .
Tips Count-funksjonen er optimalisert for å øke hastigheten på tellingen av poster i spørringer. Bruk Count-funksjonen i et spørringsuttrykk i stedet for DCount-funksjonen, og angi valgfrie vilkår for å håndheve eventuelle begrensninger på resultatene. Bruk Dantall-funksjonen når du må telle poster i et domene fra en kodemodul eller makro, eller i en beregnet kontroll.
Du kan bruke dantallfunksjonen til å telle antall poster som inneholder et bestemt felt som ikke er i postkilden som skjemaet eller rapporten er basert på. Du kan for eksempel vise antall ordrer i Ordrer-tabellen i en beregnet kontroll i et skjema basert på Produkter-tabellen.
DCount-funksjonen teller ikke poster som inneholder nullverdier i feltet det refereres til av uttr, med mindre uttr er jokertegnet stjerne (*). Hvis du bruker en stjerne, beregner DCount-funksjonen det totale antallet poster, inkludert de som inneholder Null-felt . Følgende eksempel beregner antall poster i en ordretabell.
intX = DCount("*", "Orders")
Hvis domenet er en tabell med en primærnøkkel, kan du også telle det totale antallet poster ved å angi uttr til primærnøkkelfeltet, siden det aldri vil være null i primærnøkkelfeltet.
Hvis uttr identifiserer flere felt, skiller du feltnavnene med en sammenkoblingsoperator, enten et ampersand (&) eller addisjonsoperatoren (+). Hvis du bruker et ampersand til å skille feltene, returnerer Dantall-funksjonen antall poster som inneholder data i noen av de oppførte feltene. Hvis du bruker addisjonsoperatoren, returnerer DCount-funksjonen bare antall poster som inneholder data i alle de oppførte feltene. Følgende eksempel viser effektene av hver operator når den brukes med et felt som inneholder data i alle poster (ShipName) og et felt som ikke inneholder data (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Obs!: Ampersand er den foretrukne operatoren for å utføre strengsammenkjeding. Du bør unngå å bruke tilleggsoperatoren for noe annet enn numerisk tillegg, med mindre du spesifikt ønsker å overføre nullverdier gjennom et uttrykk.
Ulagrede endringer til poster i domene er ikke inkludert når du bruker denne funksjonen. Hvis du vil at Dantall-funksjonen skal være basert på de endrede verdiene, må du først lagre endringene ved å klikke Lagre post under Poster på fanen Data , flytte fokus til en annen post eller ved hjelp av update-metoden .
Spørringseksempler
Expression |
Resultater |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Returnerer antall verdier i feltet Produkt-ID i tabellen Produktsalg der rabattverdien er 0. |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Returnerer antall verdier i feltet Produkt-ID for tabellen Produktsalg der DateofSale er en dag før gjeldende dato. |
VBA-eksempel
Obs!: I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.
Følgende funksjon returnerer antall ordrer sendt til et angitt land/område etter en angitt forsendelsesdato. Domenet er en bestillingstabell.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Hvis du vil kalle opp funksjonen, bruker du følgende kodelinje i øyeblikksvinduet:
:OrdersCount "UK", #1/1/96#