Puteți utiliza funcția DCount pentru a determina numărul de înregistrări care se află într-un set specificat de înregistrări (un domeniu ). Utilizați funcția DCount într-un modul Visual Basic for Applications (VBA), un macrocomandă, o expresie de interogare sau un control calculat.
De exemplu, puteți utiliza funcția DCount într-un modul pentru a returna numărul de înregistrări dintr-un tabel Comenzi care corespund comenzilor plasate la o anumită dată.
Sintaxă
DCount ( expresie , domeniu [, criterii] )
Sintaxa funcției DCount are următoarele argumente:
Argument |
Descriere |
expr |
Obligatoriu. O expresie care identifică câmpul pentru care doriți să contorizați înregistrările. Aceasta poate fi o expresie șir care identifică un câmp dintr-un tabel sau interogare sau poate fi o expresie care efectuează un calcul pe baza datelor din acel câmp. În expr puteți include numele unui câmp într-un tabel, un control pe un formular, o constantă sau o funcție. Dacă expr include o funcție, aceasta poate fi predefinită sau definită de utilizator, dar nu un alt agregat de domeniu sau funcție agregată SQL. |
domeniu |
Obligatoriu. O expresie șir care identifică setul de înregistrări ce constituie domeniul. Poate fi un nume de tabel sau un nume de interogare pentru o interogare care nu necesită un parametru. |
criterii |
Opțional. O expresie șir utilizată pentru a restricționa zona de date pe care se execută funcția DCount . De exemplu, criteriile sunt adesea echivalente cu clauza WHERE într-o expresie SQL, fără cuvântul WHERE. Dacă criterii este omis, funcția DCount evaluează expr față de întregul domeniu. Orice câmp care este inclus în criterii trebuie să fie, de asemenea, un câmp în domeniu; altfel, funcția DCount returnează un Null. |
Observații
Utilizați funcția DCount pentru a contoriza numărul de înregistrări dintr-un domeniu atunci când nu trebuie să cunoașteți valorile lor specifice. Deși argumentul expr poate efectua un calcul pentru un câmp, funcția DCount calculează pur și simplu numărul de înregistrări. Valoarea oricărui calcul efectuat de expr nu este disponibilă.
Utilizați funcția DCount într-un control calculat atunci când trebuie să specificați criterii pentru a restricționa zona de date pentru care se efectuează funcția. De exemplu, pentru a afișa numărul de comenzi de expediat în California, setați proprietatea ControlSource a unei casete text la următoarea expresie:
=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")
Dacă doriți pur și simplu să contorizați toate înregistrările din domeniu fără a specifica restricții, utilizați funcția Count .
Sfat Funcția Count a fost optimizată pentru a număra rapid înregistrările din interogări. Utilizați funcția Count într-o expresie de interogare în locul funcției DCount și setați criterii opționale pentru a impune orice restricții asupra rezultatelor. Utilizați funcția DCount atunci când trebuie să contorizați înregistrările dintr-un domeniu dintr-un modul de cod sau dintr-o macrocomandă sau dintr-un control calculat.
Puteți utiliza funcția DCount pentru a contoriza numărul de înregistrări care conțin un anumit câmp care nu se află în sursa de înregistrări pe care se bazează formularul sau raportul. De exemplu, puteți afișa numărul de comenzi din tabelul Comenzi într-un control calculat dintr-un formular bazat pe tabelul Produse.
Funcția DCount nu contorizează înregistrările care conțin valori Null în câmpul la care face referire expr , cu excepția cazului în care expr este caracterul wildcard asterisc (*) . Dacă utilizați un asterisc, funcția DCount calculează numărul total de înregistrări, inclusiv pe cele care conțin câmpuri Null . Următorul exemplu calculează numărul de înregistrări dintr-un tabel Comenzi.
intX = DCount("*", "Orders")
Dacă domeniu este un tabel cu un cheie primară, puteți contoriza și numărul total de înregistrări setând expr la câmpul cheie primară, deoarece nu va exista niciodată un Null în câmpul cheie primară.
Dacă expr identifică mai multe câmpuri, separați numele câmpurilor cu un operator de concatenare, fie cu un ampersand (&), fie cu operatorul de adăugare (+). Dacă utilizați un ampersand pentru a separa câmpurile, funcția DCount returnează numărul de înregistrări care conțin date în oricare dintre câmpurile listate. Dacă utilizați operatorul de adăugare, funcția DCount returnează doar numărul de înregistrări care conțin date în toate câmpurile listate. Următorul exemplu demonstrează efectele fiecărui operator atunci când este utilizat cu un câmp care conține date din toate înregistrările (NumeExpediere) și un câmp care nu conține date (ShipRegion).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Notă: Ampersand este operatorul preferat pentru efectuarea concatenării șirurilor. Trebuie să evitați utilizarea operatorului de adunare pentru altceva decât adunarea numerică, cu excepția cazului în care doriți să propagați valorile nule într-o expresie.
Modificările nesalvate la înregistrările din domeniu nu sunt incluse atunci când utilizați această funcție. Dacă doriți ca funcția DCount să se bazeze pe valorile modificate, trebuie mai întâi să salvați modificările făcând clic pe Salvare înregistrare sub Înregistrări pe fila Date , mutând focalizarea la altă înregistrare sau utilizând metoda Update .
Exemple de interogare
Expresie |
Rezultatele |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Returnează numărul de valori din câmpul "IDProdus" din tabelul "ProductSales" unde valoarea "Discount" este "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Returnează numărul de valori din câmpul "IDProdus" din tabelul "ProduseVânți" unde "DateofSale" este cu o zi înainte de data curentă. |
Exemplu VBA
Notă: Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.
Următoarea funcție returnează numărul de comenzi expediate într-o anumită țară/regiune după o dată specificată a livrării. Domeniul este un tabel Comenzi.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Pentru a apela funcția, utilizați următoarea linie de cod din fereastra Instantanee:
:OrdersCount "UK", #1/1/96#