A DSum függvénnyel kiszámíthatja egy adott rekordhalmaz (tartomány) értékhalmazának összegét. A DSum függvény használható Visual Basic for Applications (VBA) -modulokban, makrókban, lekérdező kifejezésekben és számított vezérlőelemekben.
Egy lekérdezés számított mezőkifejezésében a DSum függvénnyel például kiszámíthatja, hogy mennyit értékesített egy adott alkalmazott egy időszakban. Egy számított vezérlőelemben pedig a DSum függvénnyel megjelenítheti egy adott termék értékesítéseinek futóösszegét.
Szintaxis
DSum(kifejezés; tartomány [;kritérium] )
A DSum függvény argumentumai a következők:
| Argumentum | Leírás: |
|---|---|
| kif | Kötelező. Olyan kifejezés, amely megadja azt a numerikus mezőt, amelynek értékeit összegezni szeretné. Lehet olyan karakterlánc-kifejezés, amely megadja egy tábla vagy lekérdezés egy mezőjét, vagy lehet olyan kifejezés, amely a mezőben található adatokon elvégez egy számítást. A kifejezés argumentum tartalmazhatja egy tábla mezőjének nevét, egy űrlap vezérlőelemét, állandót vagy függvényt. Ha a kifejezés argumentum függvényt tartalmaz, akkor az lehet beépített és felhasználó által megadott függvény is, de másik tartományösszesítő vagy összesítő SQL-függvény nem. |
| tartomány | Kötelező. Olyan karakterlánc-kifejezés, amely meghatározza a tartományt alkotó rekordok készletét. Lehet táblanév vagy olyan lekérdezés neve, amelyhez nem szükséges paramétert megadni. |
| kritérium | Nem kötelező. Olyan karakterlánc-kifejezés, amellyel megadja, hogy mely adatokra kell alkalmazni a DSum függvényt. A feltétel argumentum például gyakran egyenértékű egy SQL-kifejezés WHERE záradékával a WHERE szó nélkül. Ha a feltétel argumentum nincs megadva, a DSum függvény a teljes tartományon értékeli ki a kifejezés argumentumot. A feltétel argumentumban megadott mezőknek benne kell lenniük a tartományban, különben a DSum függvény eredménye null |
Megjegyzések
Ha nincs olyan rekord, amely megfelel a feltétel argumentumnak, vagy ha a tartomány nem tartalmaz rekordot, akkor a DSum függvény null értéket ad.
Akár makróban, modulban, lekérdező kifejezésben vagy számított vezérlőelemben használja a DSum függvényt, a feltétel argumentumot gondosan kell megalkotni, hogy az Access megfelelően értékelje ki a függvényt.
A DSum függvényt használhatja feltételek megadására egy lekérdezés Feltétel sorában, egy lekérdezési kifejezés számított mezőjében vagy egy frissítő lekérdezés Módosítás sorában.
Megjegyzés
Az összegző lekérdezések számított mezőkifejezéseiben a DSum és a Sum függvényt is használhatja. Ha a DSum függvényt használja, akkor az értékek kiszámítása még az adatok csoportosítása előtt megtörténik. Ha a Sum függvényt használja, akkor az adatok csoportosítása megy végbe először, és ezután következik a mezőkifejezések kiértékelése.
Használhatja a DSum függvényt, amikor olyan mező bizonyos értékeinek összegét szeretné megjeleníteni, amely nem az űrlaphoz vagy jelentéshez tartozó rekordforrásban van. Tegyük fel például, hogy van egy űrlapja, amely adatokat jelenít meg egy termékről. Ebben az esetben a DSum függvénnyel futóösszeget vezethet egy számított vezérlőelemben a termék értékesítéseiről.
Tipp
Ha jelentésben lévő vezérlőelemben kell futóösszeget számítania, használhatja a vezérlőelem Futóösszeg tulajdonságát, ha a mező, amelyen alapul, benne van a jelentés rekordforrásában. A DSum függvénnyel űrlapon jelenítheti meg a futóösszeget.
Megjegyzés
Amikor ezt a függvényt használja, a tartomány rekordjainak nem mentett módosításait nem veszi figyelembe az Access. Ha azt szeretné, hogy a DSum függvény a módosított értékeket vegye alapul, először mentenie kell a módosításokat. Ehhez kattintson a Kezdőlap lap Rekordok csoportjának Rekord mentése gombjára, vigye a fókuszt másik rekordra, vagy használja az Update metódust.
Példák
A DSum függvény használata kifejezésekben A frissítő lekérdezés Módosítás sorában használhat tartományfüggvényt (például DSum). Tegyük fel például, hogy nyomon szeretné követni az értékesítéseket, méghozzá a Termékek táblában lévő termékek szerint. Ekkor a Termékek táblához hozzáadhat egy EddigiÉrtékesítés nevű új mezőt, és az értékek kijavítására és a rekordok frissítésére futtathat egy frissítő lekérdezést. Ehhez hozzon létre egy lekérdezést, amely a Termékek táblán alapul, és a Tervezés lap Lekérdezés típusa csoportjában kattintson a Frissítő gombra. Adja az EddigiÉrtékesítés mezőt a lekérdezőrácshoz, és írja be a következőt a Módosítás sorba:
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
A lekérdezés futásakor az Access minden termékre kiszámítja az értékesítések összegét a Rendelés részletei táblában levő adatok alapján. Az egyes termékekhez tartozó értékesítési összegek ezután a Termékek táblába kerülnek.
A DSum használata VBA-kódban
Megjegyzés
A következő példák egy Visual Basic for Applications (VBA) modulban mutatják be a függvény használatát. A VBA használatáról a Keresés elem mellett található legördülő listából a fejlesztői forrásokat választva, majd egy vagy több keresőszót megadva kaphat további tájékoztatást.
Az alábbi példában az Egyesült Királyságba szállított szállítmányok Szállítási költség mezőjében lévő értékének összegét kapja eredményül. A tartomány a Rendelések táblának felel meg. A feltétel argumentum azokra a rekordokra korlátozza a rekordkészletet, amelyekben „UK” a SzállításiOrszágTerület mező értéke.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
A következő példa két külön feltétel alapján kiszámítja az összeget. Vegye észre, hogy a karakterlánc-kifejezés aposztrófokat (') és kettős kereszteket (#) tartalmaz, hogy a karakterláncok összefűzése után a karakterlánc-literál aposztrófok között legyen, és a dátumot kettős keresztek fogják közre.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")