Puteți utiliza funcția DSum pentru a calcula suma unui set de valori dintr-un set specificat de înregistrări (un domeniu). Utilizați funcția DSum î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 DSum într-o expresie de câmp calculat dintr-o interogare pentru a calcula vânzările totale efectuate de un anumit angajat într-o perioadă de timp. Altă posibilitate este să utilizați funcția DSum într-un control calculat pentru a afișa o sumă parțială a vânzărilor pentru un anumit produs.
Sintaxă
DSum(expr, domeniu [, criterii] )
Sintaxa funcției DSum are următoarele argumente:
| Argument | Descriere |
|---|---|
| expr | Obligatoriu. O expresie care identifică câmpul numeric ale cărui valori doriți să le totalizați. 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 aplică funcția DSum . De exemplu, criterii adesea este echivalentă cu clauza WHERE într-o expresie SQL, fără cuvântul WHERE. Dacă criterii este omis, funcția DSum 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 DSum returnează un Nul. |
Observații
Dacă nicio înregistrare nu satisface argumentul criteriilor sau dacă domeniul nu conține nicio înregistrare, funcția DSum returnează un Nul.
Indiferent dacă utilizați funcția DSum într-o macrocomandă, un modul, o expresie de interogare sau un control calculat, trebuie să construiți cu atenție argumentul criteriilor , pentru a vă asigura că acesta va fi evaluat corect.
Puteți utiliza funcția DSum pentru a specifica criteriile în rândul Criterii dintr-o interogare, într-un câmp calculat dintr-o expresie de interogare sau în rândul Actualizare la dintr-o interogare de actualizare.
Notă
Puteți utiliza funcția DSum sau Sum într-o expresie de câmp calculat dintr-o interogare de totaluri. Dacă utilizați funcția DSum , valorile sunt calculate înainte de gruparea datelor. Dacă utilizați funcția Sum , datele sunt grupate înainte de evaluarea valorilor din expresia câmp.
Se recomandă să utilizați funcția DSum atunci când trebuie să afișați suma unui set de valori dintr-un câmp care nu se află în sursa de înregistrări pentru formularul sau raportul dvs. De exemplu, să presupunem că aveți un formular care afișează informații despre un anumit produs. Puteți utiliza funcția DSum pentru a menține un total parțial al vânzărilor pentru acel produs într-un control calculat.
Sfat
Dacă trebuie să mențineți un total parțial într-un control dintr-un raport, puteți să utilizați proprietatea RunningSum a acelui control, în cazul în care câmpul pe care se bazează este inclus în sursa de înregistrări pentru raport. Utilizați funcția DSum pentru a menține o sumă parțială într-un formular.
Notă
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 DSum să se bazeze pe valorile modificate, trebuie să salvați mai întâi modificările făcând clic pe Salvare înregistrare în grupul Înregistrări din fila Pornire , mutând focalizarea la altă înregistrare sau utilizând metoda de actualizare .
Exemple
Utilizarea funcției DSum într-o expresie Puteți utiliza o funcție de domeniu (cum ar fi DSum) în rândul Actualizare la dintr-o interogare de actualizare. De exemplu, să presupunem că doriți să urmăriți vânzările curente după produs într-un tabel Produse. Puteți să adăugați un câmp nou denumit VânzăriSoFar la tabelul Produse și să rulați o interogare de actualizare pentru a calcula valorile corecte și a actualiza înregistrările. Pentru a face acest lucru, creați o interogare nouă bazată pe tabelul Produse și, pe fila Proiectare , în grupul Tip interogare , faceți clic pe Actualizare. Adăugați câmpul VânzăriSoFar la grila de interogare și tastați următoarele în rândul Actualizare la :
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Când rulați interogarea, Access calculează volumul total de vânzări pentru fiecare produs pe baza informațiilor dintr-un tabel Detalii comandă. Suma vânzărilor pentru fiecare produs este adăugată la tabelul Produse.
Use DSum in VBA code
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ătorul exemplu totalizează valorile din câmpul Transport pentru comenzile expediate în Regatul Unit. Domeniul este un tabel Comenzi. Argumentul criteriilor restricționează setul rezultat de înregistrări la cele pentru care RegiuneȚarăNavigare este egală cu UK.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Următorul exemplu calculează un total utilizând două criterii separate. Rețineți că ghilimelele simple (') și semnele de număr (#) sunt incluse în expresia șir de caractere, astfel încât, atunci când șirurile sunt concatenate, șirul literal este încadrat între ghilimele simple, iar data este încadrată între semne diez.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")