Funkcija DCount

Velja za
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Funkcijo DCount lahko uporabite za določanje števila zapisov, ki so v določenem naboru zapisov (domena). Uporabite funkcijo DCount v modulu VBA (VBA), makru, izrazu poizvedbe ali izračunanem kontrolniku.

Funkcijo DCount lahko na primer uporabite v modulu, če želite vrniti število zapisov v tabeli »Naročila«, ki ustrezajo naročilom, oddanim določenega dne.

Sintaksa

DCount(izraz, domena* [, pogoj] )

Sintaksa funkcije DCount ima te argumente:

Argument Opis
izraz Obvezen. Izraz, ki določa polje, za katerega želite prešteti zapise. Lahko je izraz niza, ki določa polje v tabeli ali poizvedbi, ali pa izraz, ki izvaja izračun podatkov v tem polju. V izraz lahko vključite ime polja v tabeli, kontrolnik v obrazcu, konstanto ali funkcijo. Če izraz vključuje funkcijo, je lahko vgrajen ali uporabniško določen, ne pa tudi druge združevalne funkcije domene ali združevalne funkcije SQL.
domena Obvezen. Izraz niza, ki določa nabor zapisov, ki sestavljajo domeno. To je lahko ime tabele ali ime poizvedbe za poizvedbo, ki ne zahteva parametra.
pogoji Izbiren. Izraz niza, ki se uporablja za omejitev obsega podatkov, na katerem se izvede funkcija DCount. Pogoj je na primer pogosto enakovreden stavku WHERE v izrazu SQL brez besede WHERE. Če izpustite pogoj, funkcija DCount ovrednoti izraz glede na celotno domeno. Polje, ki je vključeno v pogoj, mora biti tudi polje v domeni; sicer funkcija DCount vrne vrednost Null.

Pripombe

Uporabite funkcijo DCount za štetje števila zapisov v domeni, kadar niso pomembne njihove določene vrednosti. Čeprav lahko argument izraz izvede izračun v polju, funkcija DCount preprosto prešteje število zapisov. Vrednost katerega koli izračuna, ki ga izvede izraz , ni na voljo.

Uporabite funkcijo DCount v izračunanem kontrolniku, če želite določiti pogoje za omejitev obsega podatkov, v katerih se izvaja funkcija. Če želite na primer prikazati število naročil za pošiljanje v Kalifornijo, nastavite lastnost ControlSource polja z besedilom na ta izraz:

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

Če želite preprosto prešteti vse zapise v domeni , ne da bi navedli omejitve, uporabite funkcijo Count .

Nasvet Funkcija Count je bila optimizirana za pospešitev štetja zapisov v poizvedbah. Funkcijo Count uporabite v izrazu poizvedbe namesto funkcije DCount in nastavite izbirne pogoje za uveljavitev omejitev rezultatov. Funkcijo DCount uporabite, kadar morate prešteti zapise v domeni iz modula kode ali makra ali v izračunanem kontrolniku.

Funkcijo DCount lahko uporabite za štetje zapisov, ki vsebujejo določeno polje, ki ni v viru zapisov, na katerem temelji obrazec ali poročilo. Na primer, prikažete lahko število naročil v tabeli »Naročila« v izračunanem kontrolniku v obrazcu, ki temelji na tabeli »Izdelki«.

Funkcija DCount ne šteje zapisov, ki vsebujejo vrednosti Null v polju, na katerega se sklicuje izraz, razen če je izraz nadomestni znak zvezdica (*). Če uporabite zvezdico, funkcija DCount izračuna skupno število zapisov, vključno s tistimi, ki vsebujejo polja Null. V spodnjem primeru je izračunano število zapisov v tabeli »Naročila«.

intX = DCount("*", "Orders")

Če je domena tabela s primarnim ključem, lahko skupno število zapisov preštejete tudi tako, da nastavite izraz na polje s primarnim ključem, saj v polju s primarnim ključem nikoli ne bo ničelne vrednosti.

Če izraz identificira več polj, ločite imena polj z operatorjem združevanja, bodisi z znakom »in« (&) bodisi z operatorjem seštevka (+). Če za ločevanje polj uporabite znak »in«, funkcija DCount vrne število zapisov, ki vsebujejo podatke v katerem koli od navedenih polj. Če uporabite operator seštevanja, funkcija DCount vrne samo število zapisov, ki vsebujejo podatke v vseh navedenih poljih. V naslednjem primeru so prikazani učinki posamičnih operatorjev, kadar jih uporabljate s poljem, ki vsebuje podatke v vseh zapisih (ImePrejemnika) in poljem, ki ne vsebuje podatkov (RegijaPrejemnika).

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

Opomba

Znak »in« je priporočeni operator za spajanje nizov. Ne uporabljajte operatorja seštevanja za druge namene kot za seštevanje števil, razen, če izrecno ne želite razširiti ničelne vrednosti v izrazu.

Neshranjene spremembe zapisov v domeni niso vključene, ko uporabite to funkcijo. Če želite, da funkcija DCount temelji na spremenjenih vrednostih, morate najprej shraniti spremembe tako, da kliknete Shrani zapis v razdelku Zapisi na zavihku Podatki, s katerim premaknete fokus na drug zapis, ali pa uporabite način Posodobitev.

Primeri poizvedb

Izraz Rezultati
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); Vrne število vrednosti v polju »IDizdelka« v tabeli »Naročila izdelkov«, kjer je vrednost »Popust« »0«.
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); Vrne število vrednosti v polju »IDizdelka« v tabeli »ProdajaProdaje izdelkov«, kjer je »DateofSale« dan pred trenutnim datumom.

primer VBA

Opomba

V spodnjih primerih je prikazana uporaba te funkcije v modulu Visual Basic for Applications (VBA). Če želite več informacij o delu z modulom VBA, izberite Vsebina za razvijalce na spustnem seznamu ob možnosti Iskanje in v iskalno polje vnesite enega ali več izrazov.

Spodnja funkcija vrne število naročil, odposlanih v določeno državo/regijo po navedenem datumu odpreme. Domeno predstavlja tabela »Naročila«.

Public Function OrdersCount _
    (ByVal strCountryRegion As String, _
    ByVal dteShipDate As Date) As Integer
    OrdersCount = DCount("[ShippedDate]", "Orders", _
        "[ShipCountryRegion] = '" & strCountryRegion & _
        "' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

Če želite priklicati funkcijo, v neposrednem oknu uporabite to vrstico kode:

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