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#