U kunt de functie DSum gebruiken om de som te berekenen van een verzameling waarden in een opgegeven set records (een domein). Gebruik de functie DSum in een Visual Basic for Applications-module (VBA), een macro, een query-expressie of een berekend besturingselement.
Zo kunt u de functie DSum gebruiken in een berekende veldexpressie van een query om de totale verkoop over een bepaalde periode van een bepaalde werknemer te berekenen. Of u kunt DSum gebruiken in een berekend besturingselement om het lopende totaal van de verkoop van een bepaald product weer te geven.
Syntaxis
DSum(expr, domein [, criterium] )
De syntaxis van de functie DSum bevat de volgende argumenten:
| Argument | Beschrijving |
|---|---|
| expr | Vereist. Dit is een expressie waarmee u het numerieke veld kunt aangeven waarvan u de som van alle waarden wilt zien. Dit kan een tekenreeksexpressie zijn waarmee een veld in een tabel of query wordt aangeduid of een expressie die een berekening uitvoert op de gegevens in dat veld. In expr kunt u de naam van een veld in een tabel opnemen, een besturingselement van een formulier, een constante of een functie. Als expr een functie bevat, kan dit een ingebouwde functie of een door een gebruiker gedefinieerde functie zijn, maar niet nog een statistische domein- of SQL-functie. |
| domein | Vereist. Een tekenreeksexpressie waarmee de set records wordt aangegeven waaruit het domein bestaat. Dit kan de naam van een tabel zijn of de naam van een query waarvoor geen parameter nodig is. |
| criteria | Optioneel. Een tekenreeksexpressie die wordt gebruikt om het gegevensbereik te beperken waarop de DSum-functie wordt uitgevoerd. Criteria zijn bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als u criteria weglaat, wordt expr door de functie DSum geëvalueerd voor het hele domein. Elk veld dat is opgenomen in criteria moet ook een veld in domein zijn; Anders retourneert de functie DSum een Null. |
Opmerkingen
Als geen enkele record voldoet aan het argument criteria of als het domein geen records bevat, retourneert DSum een Null.
U moet de criteria zorgvuldig samenstellen, of u de functie DSum nu gebruikt in een macro, een module, een query-expressie of een berekend besturingselement. Alleen zo kan het argument goede resultaten opleveren.
U kunt de functie DSum gebruiken om criteria op te geven in de rij Criteria van een query, in een berekend veld in een query-expressie of in de rij Wijzigen in van een bijwerkquery.
Opmerking
U kunt de functie DSum of Sum gebruiken in een berekende veldexpressie van een totalenquery. Als u de functie DSum gebruikt, vindt de berekening van de waarden plaats voordat de gegevens zijn gegroepeerd. Als u de functie Sum gebruikt, worden de gegevens gegroepeerd voordat de waarden van de veldexpressie zijn geëvalueerd.
U kunt de functie DSum eventueel gebruiken om de som van een verzameling waarden weer te geven van een veld dat zich niet in de bron van de record van uw formulier of rapport bevindt. U hebt bijvoorbeeld een formulier waarop de informatie van een bepaald product wordt weergegeven. U kunt dan de functie DSum gebruiken om het lopende totaal van de verkopen van dat product in een berekend besturingselement bij te houden.
Tip
Gebruik de eigenschap RunningSum van het desbetreffende besturingselement om een lopend totaal bij te houden in een besturingselement, als het veld waarop het is gebaseerd is opgenomen in de recordbron van het rapport. Gebruik de functie DSum om een lopend totaal bij te houden in een formulier.
Opmerking
Recordwijzigingen die niet zijn opgeslagen in het domein , worden niet meegenomen in deze functie. Als u de functie DSum wilt baseren op de gewijzigde waarden, moet u de wijzigingen eerst opslaan. Klik op het tabbladStart op Record opslaan in de groep Records, verplaats de focus naar een andere record of gebruik de methode Bijwerken.
Voorbeelden
De functie DSum gebruiken in een expressie U kunt een domeinfunctie (zoals DSum) gebruiken in de rij Wijzigen in van een bijwerkquery. Stel dat u de huidige verkopen per product wilt bijhouden in een tabel Producten. U kunt dan een nieuw veld met de naam SalesSoFar toevoegen aan de tabel Producten en een bijwerkquery uitvoeren om de juiste waarden te berekenen en de records bij te werken. Maak hiervoor een nieuwe query op basis van de tabel Producten en klik op het tabblad Ontwerpen in de groep Querytype op Bijwerken. Voeg het veld SalesSoFar toe aan het queryraster en typ het volgende in de rij Wijzigen in :
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Als u de query uitvoert, wordt het totale aantal verkopen door Access per product berekend op basis van informatie die afkomstig is uit de tabel Orderinformatie. Het totaal aantal verkopen per product wordt aan de tabel Producten toegevoegd.
DSum gebruiken in VBA-code
Opmerking
In de volgende voorbeelden wordt het gebruik van deze functie in een VBA-module (Visual Basic for Applications) toegelicht. Meer informatie over het werken met VBA vindt u door in de vervolgkeuzelijst naast Zoeken de optie Referentie voor ontwikkelaars te selecteren en een of meer termen in het zoekvenster te typen.
In het volgende voorbeeld vindt u de som van de waarden van het veld Vrachtkosten voor orders die naar het Verenigd Koninkrijk zijn verzonden. Het domein is de tabel Orders. Het argument criteria beperkt het resultaat tot een recordset waarvan Verzendland/-regio gelijk is aan UK.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
In het volgende voorbeeld wordt het totaal berekend aan de hand van twee afzonderlijke criteria. In de tekenreeksexpressie zijn enkele aanhalingstekens (') en hekjes (#) opgenomen. Zo wordt bij het samenvoegen van de tekenreeksen de letterlijke tekenreeks tussen enkele aanhalingstekens geplaatst en de datum tussen pondtekens.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")