Du kan bruge funktionen DTÆL til at fastslå det antal poster, der er i et bestemt sæt poster (et domæne). Brug funktionen DTÆL i et VBS-modul (Visual Basic for Applications), en makro, et forespørgselsudtryk eller et beregnet kontrolelement.
Du kan f.eks. bruge funktionen DTÆL i et modul for at returnere antallet af poster i tabellen Ordrer, der svarer til det antal ordrer, der er afgivet på en bestemt dato.
Syntaks
DTÆL ( udtryk , domæne [, kriterier] )
Syntaksen for funktionen DTÆL har disse argumenter:
Argument |
Beskrivelse |
udtryk |
Påkrævet. Et udtryk, der identificerer det felt, som du vil tælle poster for. Det kan være et strengudtryk, der identificerer et felt i en tabel eller forespørgsel, eller det kan være et udtryk, der udfører en beregning af data i det pågældende felt. I udtryk kan du medtage navnet på et felt i en tabel, et kontrolelement i en formular, en konstant eller en funktion. Hvis udtryk indeholder en funktion, kan den enten være indbygget eller brugerdefineret, men det kan ikke være en anden domæneaggregeringsfunktion eller en SQL-aggregeringsfunktion. |
domæne |
Påkrævet. Et strengudtryk, der identificerer det sæt af poster, der udgør domænet. Det kan være et tabelnavn eller et forespørgselsnavn til en forespørgsel, der ikke kræver en parameter. |
kriterier |
Valgfrit. Et strengudtryk, der bruges til at begrænse det dataområde, hvor funktionen DTÆL udføres. Eksempelvis svarer kriterier ofte til WHERE-delsætningen i et SQL-udtryk uden ordet WHERE. Hvis kriterier udelades, evaluerer funktionen DTÆLudtryk i forhold til hele domænet. Alle felter, der er inkluderet i kriterier , skal også være et felt i domæne. Ellers returnerer funktionen DTÆL en Null-værdi. |
Bemærkninger
Brug funktionen DTÆL til at tælle antallet af poster i et domæne, når du ikke behøver at kende de enkelte værdier. Selvom argumentet udtryk kan udføre en beregning på et felt, tæller funktionen DTÆL blot antallet af poster. Værdien af en beregning, der udføres ved udtryk, er ikke tilgængelig.
Brug funktionen DTÆL i et beregnet kontrolelement, når du har brug for at angive kriterier for at begrænse det dataområde, hvor funktionen udføres. Hvis du f.eks. vil have vist antallet af ordrer, der skal sendes til Californien, skal du angive egenskaben ControlSource for et tekstfelt til følgende udtryk:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Hvis du blot vil tælle alle poster i domæne uden at angive nogen begrænsninger, skal du bruge funktionen TÆL.
Tip! Funktionen TÆL er blevet optimeret til hurtigoptælling af poster i forespørgsler. Brug funktionen TÆL i et forespørgselsudtryk i stedet for funktionen DTÆL, og angiv valgfrie kriterier for at gennemtvinge eventuelle begrænsninger af resultaterne. Du kan bruge funktionen DTÆL, når du skal tælle poster i et domæne fra et kodemodul eller en makro eller i et beregnet kontrolelement.
Du kan bruge funktionen DTÆL til at tælle antallet af poster, der indeholder et bestemt felt, som ikke findes i postkilden, som formularen eller rapporten er baseret på. Du kan f.eks. få vist antallet af ordrer i tabellen Ordrer i et beregnet kontrolelement i en formular, der er baseret på tabellen Produkter.
Funktionen DTÆL tæller ikke poster, der indeholder Null-værdier i det felt, der refereres til af udtryk, medmindre udtryk er jokertegnet stjerne (*). Hvis du bruger en stjerne, beregner funktionen DTÆL det samlede antal poster, herunder dem der indeholder Null-felter. I følgende eksempel beregnes antallet af poster i en ordretabel.
intX = DCount("*", "Orders")
Hvis domæne er en tabel med en primær nøgle, kan du også tælle det samlede antal poster ved at angive udtryk til primær nøgle-feltet, da der aldrig vil være en Null-værdi i primær nøgle-feltet.
Hvis udtryk identificerer flere felter, skal du adskille feltnavnene med en sammenkædningsoperator – enten et og-tegn (&) eller additionsoperatoren (+). Hvis du bruger et og-tegn til at adskille felterne, returnerer funktionen DTÆL antallet af poster, der indeholder data i et af de viste felter. Hvis du bruger additionsoperatoren, returnerer funktionen DTÆL kun antallet af poster, der indeholder data i alle de viste felter. I følgende eksempel demonstreres effekterne af hver operator, når den bruges med et felt, der indeholder data i alle poster (Kundenavn), og et felt, der ikke indeholder nogen data (Modtagerområde).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Bemærk!: Og-tegnet er den foretrukne operator til at udføre sammenkædning af strenge. Du skal undgå at bruge additionsoperatoren til andet end at lægge tal sammen, medmindre du specifikt ønsker at overføre nullværdier via et udtryk.
Ikke-gemte ændringer i poster i domæne inkluderes ikke, når du bruger denne funktion. Hvis du vil have, at funktionen DTÆL skal være baseret på de ændrede værdier, skal du først gemme ændringerne ved at klikke på Gem post under Poster på fanen Data, flytte fokus til en post eller ved hjælp af metoden Opdater.
Forespørgselseksempler
Udtryk |
Resultater |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Udtryk1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Returnerer antallet af værdier i feltet "Produkt-id" i tabellen "Produktsalg", hvor værdien "Rabat" er "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Returnerer antallet af værdier i feltet "Produkt-id" i tabellen "Produktsalg", hvor "DateofSale" er en dag før den aktuelle dato. |
VBA-eksempel
Bemærk!: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.
Følgende funktion returnerer antallet af ordrer, der er sendt til et bestemt land/område efter en bestemt forsendelsesdato. Domænet er en ordretabel.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
For at kalde funktionen skal du bruge følgende kodelinje i vinduet Brugerudtryk:
:OrdersCount "UK", #1/1/96#