Funcția Dcount

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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), într-o 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(expr, 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ări. 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. In expr, puteți include numele unui câmp dintr-un tabel, un control dintr-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 aplică funcția DCount . De exemplu, criterii adesea este echivalentă cu clauza WHERE într-o expresie SQL, fără cuvântul WHERE. În cazul în care 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 Nul.

Observații

Utilizați funcția DCount pentru a contoriza numărul de înregistrări dintr-un domeniu atunci când nu trebuie să le cunoașteți valorile particulare. Deși argumentul expr poate efectua un calcul pentru un câmp, funcția DCount numără pur și simplu numărul de înregistrări. Valoarea oricărui calcul efectuat prin 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 pe care se aplică funcția. De exemplu, pentru a afișa numărul de comenzi care vor fi expediate în California, setați proprietatea Sursă control a unei casete text la următoarea expresie:

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

Dacă doriți pur și simplu să număraț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 accelera numărarea înregistrărilor în interogări. Utilizați funcția Count într-o expresie de interogare în loc de funcția DCount și setați criterii opționale pentru a impune 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, 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 dvs. De exemplu, puteți să afișați 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 nule în câmpul la care face referire expr , cu excepția cazului în care expr este metacaracterul asterisc (*). Dacă utilizați un asterisc, funcția DCount calculează numărul total de înregistrări, inclusiv pe cele care conțin câmpuri Nule . Următorul exemplu calculează numărul de înregistrări dintr-un tabel Comenzi.

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

Dacă domeniul este un tabel cu o cheie primară, puteți, de asemenea, să contorizați numărul total de înregistrări setând expr la câmpul cheie primară, deoarece nu va exista niciodată un Nul în câmpul cheii primare.

Dacă expr identifică mai multe câmpuri, separați numele câmpurilor cu un operator de concatenare, fie un ampersand (&), fie 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 adunare, funcția DCount returnează numai 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 (RegiuneExpediere).

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

Notă

Ampersandul este operatorul preferat pentru efectuarea concatenării de șiruri. Ar trebui să evitați utilizarea operatorului de adunare pentru orice altceva decât adunarea numerică, cu excepția cazului în care doriți în mod specific să propagați valori Null printr-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 să salvați mai întâ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 de actualizare .

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 "VânzăriProdus" unde valoarea "Reducere" 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 "VânzăriProdus", unde "DataDeVânzare" 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ă de livrare specificată. 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 în fereastra Instantanee:

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