DCount, funksjon

Gjelder for
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan bruke DCount-funksjonen til å bestemme antall poster som er i et angitt sett med poster (et domene). Bruke DCount-funksjonen i en VBA-modul (Visual Basic for Applications), en makro, et spørreuttrykk eller en beregnet kontroll.

Du kan for eksempel bruke DCount-funksjonen i en modul til å returnere antall poster i en ordretabell som tilsvarer ordrer plassert på en bestemt dato.

Syntaks

DCount(uttr; domene* [, vilkår] )

Syntaksen for funksjonen DCount har disse argumentene:

Argumenter Beskrivelse
uttr Obligatorisk. Et uttrykk som identifiserer feltet der du vil telle poster. 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 uttrykk 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 DCount-funksjonen utføres. Vilkår tilsvarer for eksempel ofte WHERE-setningen i et SQL-uttrykk uten ordet HVOR. Hvis vilkår utelates, evaluerer DCount-funksjonenuttr mot hele domenet. Ethvert felt som er inkludert i vilkår, må også være et felt i domene; Hvis ikke returnerer DCount-funksjonen en Null.

Merknader

DCount-funksjonen brukes til å telle antallet poster i et domene når du ikke trenger å kjenne til de bestemte verdiene. Selv om argumentet uttr kan utføre en beregning på et felt, teller DCount-funksjonen ganske enkelt antall poster. Verdien av eventuelle beregninger utført av uttr, er utilgjengelig.

Bruk DCount-funksjonen i en beregnet kontroll når du må angi vilkår for å begrense dataområdet der funksjonen utføres. Hvis du for eksempel vil vise antall ordrer som skal sendes til California, angir du ControlSource-egenskapen for en tekstboks til følgende uttrykk:

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

Hvis du ganske enkelt vil telle alle postene i domenet uten å angi noen begrensninger, bruker du Antall-funksjonen .

Tips Antall-funksjonen er optimalisert for raskere telling av poster i spørringer. Bruk Antall-funksjonen i et spørringsuttrykk i stedet for DCount-funksjonen, og angi valgfrie vilkår for å håndheve eventuelle begrensninger på resultatene. Bruk DCount-funksjonen når du må telle poster i et domene fra en kodemodul eller makro, eller i en beregnet kontroll.

Du kan bruke DCount-funksjonen 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 ordretabellen i en beregnet kontroll i et skjema basert på varetabellen.

DCount-funksjonen teller ikke poster som inneholder nullverdier i feltet som refereres 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 Ordrer-tabell.

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 bli en nullverdi i primærnøkkelfeltet.

Hvis uttr identifiserer flere felt, skiller du feltnavnene med en sammenkjedingsoperator, enten en ampersand (&) eller addisjonsoperatoren (+). Hvis du bruker et -tegn til å skille feltene, returnerer DCount-funksjonen antall poster som inneholder data i de oppførte feltene. Hvis du bruker addisjonsoperatoren, returnerer DCount-funksjonen bare antallet poster som inneholder data i alle de oppførte feltene. Det følgende eksemplet demonstrerer effekten 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!

-tegnet er den foretrukne operatoren for å foreta sammenkobling av strenger. Du bør unngå å bruke addisjonsoperatoren til noe annet enn numerisk addisjon, med mindre du spesifikt vil 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 DCount-funksjonen skal være basert på de endrede verdiene, må du først lagre endringene ved å klikke Lagre post under PosterData-fanen , flytte fokus til en annen post, eller ved hjelp av oppdateringsmetoden .

Eksempler på spørringer

Uttrykk Resultater
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); Returnerer antallet verdier i feltet «ProduktID» i tabellen «ProduktSalg» der verdien «Rabatt» er «0».
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); Returnerer antallet verdier i feltet «ProduktID» i tabellen «Produktsalg» der «Salgsdato» 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.

Funksjonen nedenfor returnerer antall ordrer som er sendt til et bestemt 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

Bruk følgende kodelinje i øyeblikksvinduet for å kalle funksjonen:

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