Funkciju DCount možete da koristite da biste utvrdili broj zapisa koji se nalaze u navedenom skupu zapisa (tip domen ). Koristite funkciju DCount u Visual Basic for Applications (VBA) modulu, makro, izrazu upita ili u izračunata kontrola.
Na primer, možete da koristite funkciju DCount u modulu da biste vratili broj zapisa u tabeli "Porudžbine" koji odgovaraju porudžbinama koje su postavljene određenog datuma.
Sintaksa
DCount ( izraz , domen [, kriterijumi] )
Sintaksa funkcije DCount ima sledeće argumente:
Argument |
Opis |
expr |
Obavezno. Izraz koji identifikuje polje za koje želite da prebrojite zapise. To može da bude izraz niske koja identifikuje polje u tabeli ili upitu ili može da bude izraz koji obavlja izračunavanje podataka u tom polju. U argument expr možete uključiti ime polja u tabeli, kontrolu u obrascu, konstantu ili funkciju. Ako expr uključuje funkciju, ona može da bude ugrađena ili korisnički definisana, ali ne može da bude agregatna funkcija drugog domena ili SQL agregatna funkcija. |
domain |
Obavezno. Izraz niske koji identifikuje skup zapisa koji čine domen. Može da bude ime tabele ili ime upita za upit koji ne zahteva parametar. |
kriterijum |
Opcionalno. Izraz niske koji se koristi za ograničavanje opsega podataka na kojem se izvršava funkcija DCount . Na primer, kriterijumi su često jednaki odredbi WHERE u SQL izrazu, bez reči WHERE. Ako je kriterijum izostavljen, funkcija DCount procenjuje expr u odnosu na ceo domen. Sva polja uključena u kriterijume takođe moraju biti polje u domenu; U suprotnom funkcija DCount vraća vrednost Null. |
Napomene
Koristite funkciju DCount za prebrojavanje zapisa u domenu kada ne morate da znate njihove određene vrednosti. Iako argument izraz može da izvrši izračunavanje na polju, funkcija DCount jednostavno nabraja broj zapisa. Vrednost svakog izračunavanja koje izvrši izraz nije dostupna.
Funkciju DCount koristite u izračunatoj kontroli kada treba da navedete kriterijume za ograničavanje opsega podataka na kojem se funkcija izvršava. Na primer, da biste prikazali broj porudžbina koje će biti isporučene u Kaliforniju, postavite svojstvo ControlSource okvira za tekst na sledeći izraz:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Ako jednostavno želite da prebrojite sve zapise u domenu bez navođenja ograničenja, koristite funkciju Count .
Savet Funkcija Count je optimizovana za ubrzavanje prebrojavanja zapisa u upitima. Koristite funkciju Count u izrazu upita umesto funkcije DCount i postavite opcionalne kriterijume da biste nametnuli sva ograničenja rezultata. Funkciju DCount koristite kada morate da prebrojite zapise u domenu iz modula koda ili makroa ili u izračunatoj kontroli.
Funkciju DCount možete da koristite za prebrojavanje zapisa koji sadrže određeno polje koje se ne nalazi u izvoru zapisa na kojem je zasnovan obrazac ili izveštaj. Na primer, možete da prikažete broj porudžbina u tabeli "Porudžbine" u izračunatoj kontroli u obrascu zasnovanom na tabeli "Proizvodi".
Funkcija DCount ne prebrojava zapise koji u polju na koje upućuju vrednosti Null, osim ako izraz nije džoker znak zvezdice (*). Ako koristite zvezdicu, funkcija DCount izračunava ukupan broj zapisa, uključujući one koji sadrže polja bez vrednosti . Sledeći primer izračunava broj zapisa u tabeli "Porudžbine".
intX = DCount("*", "Orders")
Ako je domen tabela sa primarni ključ, možete da prebrojite i ukupan broj zapisa tako što ćete postaviti izraz na polje primarnog ključa jer u polju primarnog ključa nikada neće biti vrednosti Null.
Ako izraz identifikuje više polja, razdvojte imena polja operatorom spajanja, znakom ampersand (&) ili operatorom sabiranja (+). Ako koristite ampersand da biste razdvojili polja, funkcija DCount vraća broj zapisa koji sadrže podatke u bilo kom navedenom polju. Ako koristite operator sabiranja, funkcija DCount vraća samo broj zapisa koji sadrže podatke u svim navedenim poljima. Sledeći primer prikazuje efekte svakog operatora kada se koristi sa poljem koje sadrži podatke u svim zapisima (ImeOtpreme) i poljem koje ne sadrži podatke (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Napomena: "ampersand" je željeni operator za izvršavanje spajanja niske. Trebalo bi da izbegavate korišćenje operatora sabiranja za sve osim numeričkog sabiranja, osim ako posebno ne želite da prenosite polja bez vrednosti kroz izraz.
Promene u zapisima na domenu koje nisu sačuvane nisu obuhvaćene kad koristite ovu funkciju. Ako želite da funkcija DCount bude zasnovana na promenjenim vrednostima, prvo morate da sačuvate promene tako što ćete kliknuti na dugme Sačuvaj zapis u okviru Zapisi na kartici Podaci, premestiti fokus na drugi zapis ili pomoću metoda Updat e.
Primeri upita
Izraz |
Rezultati |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Izraz1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Daje broj vrednosti u polju "ID proizvoda" tabele "Prodaje proizvoda" gde je vrednost "Popust" "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Daje broj vrednosti u polju "ID proizvoda" tabele "ProdajaSekt" u kojoj je "DateofSale" dan pre trenutnog datuma. |
VBA primer
Napomena: Primeri koji slede pokazuju upotrebu ove funkcije u Visual Basic for Applications (VBA) modulu. Za više informacija o radu sa VBA modulom izaberite stavku Referenca razvojnog programera sa padajuće liste pored stavke Pretraga i unesite termine u polje za pretragu.
Sledeća funkcija vraća broj porudžbina isporučenih u navedenu zemlju/region nakon navedenog datuma isporuke. Domen je tabela „Porudžbine“.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Da biste zvati funkciju, koristite sledeći red koda u prozoru Neposredno:
:OrdersCount "UK", #1/1/96#