Applies ToAccess voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

U kunt de functie DSum gebruiken om de som te berekenen van een verzameling waarden in een opgegeven recordset (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 [, criteria] )

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 reeksexpressie zijn waarmee een veld van een tabel of query wordt aangegeven of een expressie die een berekening uitvoert op de gegevens die zich in dat veld bevinden. 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 bereik van gegevens te beperken waarop de functie DSum wordt uitgevoerd. Criteria is bijvoorbeeld vaak gelijk aan de WHERE-component in een SQL-expressie, zonder het woord WHERE. Als criteria worden weggelaten, evalueert de functie DSumexpr op basis van het hele domein. Elk veld dat is opgenomen in criteria , moet ook een veld in het 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 de criteria op te geven voor de rij Criteria van een query, een berekend veld van een query 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: Niet-opgeslagen wijzigingen in records in domein worden niet opgenomen wanneer u deze functie gebruikt. Als u wilt dat de functie DSum is gebaseerd op de gewijzigde waarden, moet u de wijzigingen eerst opslaan door op Record opslaan te klikken in de groep Records op het tabblad Start , de focus naar een andere record te verplaatsen of door de methode Bijwerken te gebruiken.

Voorbeelden

De functie DSum gebruiken in een expressie    U kunt een domeinfunctie (zoals DSum) gebruiken in de rij Bijwerken naar van een updatequery. Stel dat u de huidige verkoop per product wilt bijhouden in een tabel Producten. U kunt een nieuw veld met de naam SalesSoFar toevoegen aan de tabel Producten en een updatequery uitvoeren om de juiste waarden te berekenen en de records bij te werken. Hiervoor maakt u een nieuwe query op basis van de tabel Producten en klikt u 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 Bijwerken naar :

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 CurrencycurX = DSum("[Freight]", "Orders", _    "[ShipCountryRegion] = 'UK'")

In het volgende voorbeeld wordt een totaal berekend aan de hand van twee afzonderlijke criteria. Houd er rekening mee dat enkele aanhalingstekens (') en nummertekens (#) in de tekenreeksexpressie zijn opgenomen, zodat wanneer de tekenreeksen worden samengevoegd, de letterlijke tekenreeks tussen enkele aanhalingstekens wordt geplaatst en de datum tussen hekjes wordt geplaatst.

Dim curX As CurrencycurX = DSum("[Freight]", "Orders", _    "[ShipCountryRegion] = 'UK' AND _    [ShippedDate] > #1-1-95#")

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.