Funkcijo DCount lahko uporabite za določanje števila zapisov v določenem naboru zapisov (domeni). Funkcijo DCount lahko uporabite v modulu VBA (Visual Basic for Applications), 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* [, pogoji] )
Sintaksa funkcije DCount ima te argumente:
| Argument | Opis |
|---|---|
| izraz | Obvezen. Izraz, ki določa polje, za katerega želite prešteti zapise. To je lahko izraz niza, ki določa polje v tabeli ali poizvedbi, ali pa izraz, ki izvaja funkcijo računanja podatkov v tem polju. V izraz lahko vključite ime polja v tabeli, kontrolnik na obrazcu, konstanto ali funkcijo. Če izraz vključuje funkcijo, je lahko vgrajen ali uporabniško določen, ne more pa biti skupek druge domene ali združevalne funkcije strežnika 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. Argument »pogoji« je na primer pogosto enakovreden stavku WHERE v izrazu strežnika SQL, vendar brez besede WHERE. Če izpustite argument »pogoj «, funkcija DCount ovrednoti izraz glede na celotno domeno. Vsa polja, ki so vključena v pogoj, morajo biti tudi polje v domeni; V nasprotnem primeru funkcija DCount vrne ničelno vrednost. |
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. Vrednosti izračunov, ki jih izvede izraz, niso 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 pa želite prešteti vse zapise v domeni brez kakršnih koli omejitev, uporabite funkcijo Count .
Namig 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 prešteje zapisov, ki vsebujejo ničelne vrednosti 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 preštejete tudi skupno število zapisov tako, da nastavite izraz v polje s primarnim ključem, ker v polju s primarnim ključem nikoli ne bo nič .
Če izraz določa več polj, ločite imena polj z operatorjem za združevanje, bodisi z znakom »in« (&) ali z operatorjem seštevanja (+). Č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 čimer premaknete fokus na drug zapis, ali pa uporabite način posodobitve .
Primeri poizvedb
| Izraz | Rezultati |
|---|---|
| SELECT DCount("IDIzdelka";"ProdajaIzdelka";"Popust=0") AS Izr1 FROM Skupina ProdajeIzdelkov BY DCount("IDIzdelka","ProdajaZdelka";"Popust=0"); | Vrne število vrednosti v polju »IDIzdelka« tabele »ProdajaIzdelka«, 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« tabele »ProdajaIzdelek«, kjer je »DatumProdaje« en 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#