Funktionen DSum

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan använda funktionen DSumma för att beräkna summan av en uppsättning värden i en angiven uppsättning poster (en domän). Använd funktionen DSumma i en VBA-modul (Visual Basic for Applications), ett makro, ett frågeuttryck eller en beräknad kontroll.

Du kan till exempel använda funktionen DSumma i ett beräknat fältuttryck i en fråga till att beräkna den totala försäljningen som gjorts av en viss anställd under en viss tidsperiod. Alternativt kan du använda funktionen DSumma i en beräknad kontroll till att visa en löpande försäljningssumma för en viss produkt.

Syntax

DSumma(uttr, domän [, villkor] )

Syntaxen för funktionen DSumma har följande argument:

Argument Beskrivning
uttr Obligatoriskt. Ett uttryck där du identifierar det numeriska fält vars värde du vill summera. Det kan vara ett stränguttryck som identifierar ett fält i en tabell eller fråga, eller ett uttryck som utför en beräkning på data i det fältet. I uttr kan du ta med namnet på ett fält i en tabell, en kontroll i ett formulär, en konstant eller en funktion. Om uttr innehåller en funktion kan den vara antingen inbyggd eller användardefinierad, men inte någon annan mängdfunktion för domäner eller en SQL-mängdfunktion.
domän Obligatoriskt. Ett stränguttryck där du identifierar den uppsättning poster som utgör domänen. Det kan vara ett tabellnamn eller ett frågenamn för en fråga som inte kräver någon parameter.
villkor Valfritt. Ett stränguttryck som används för att begränsa det dataintervall som DSumma körs på. Till exempel motsvarar villkor ofta WHERE-satsen i ett SQL-uttryck, utan ordet WHERE. Om villkor utelämnas så utvärderas uttr i funktionen DSumma mot hela domänen. Alla fält som ingår i villkor måste också vara fält i domän, annars returnerar funktionen DSummaNull.

    

Anmärkningar

Om ingen post motsvarar argumentet villkor eller om domänen inte innehåller några poster returnerar funktionen DSumma Null.

Oavsett om du använder funktionen DSumma i ett makro, en modul, ett frågeuttryck eller en beräknad kontroll måste du vara noga när du skapar argumentet villkor så att det utvärderas på rätt sätt.

Du kan använda funktionen DSumma för att ange villkor på raden Villkor för en fråga, i ett beräknat fält i ett frågeuttryck eller på raden Uppdatera till i en uppdateringsfråga.

Obs

Du kan använda antingen funktionen DSumma eller Summa i ett beräknat fältuttryck i en summafråga. Om du använder funktionen DSumma beräknas värdena innan data grupperas. Om du använder funktionen Summa grupperas data innan värdena i fältuttrycket beräknas.

Du kanske vill använda funktionen DSumma när du vill visa summan av en uppsättning värden från ett fält som inte finns med i datakällan för formuläret eller rapporten. Anta till exempel att du har ett formulär med information om en viss produkt. Du kan använda funktionen DSumma till att visa en löpande summa för försäljningen av produkten i en beräknad kontroll.

Tips

Om du behöver visa en löpande summa i en kontroll i en rapport kan använda du egenskapen LöpandeSummering för kontrollen om fältet som den baseras på finns med i datakällan för rapporten. Använd funktionen DSumma till att visa en löpande summa i ett formulär.

Obs

Ej sparade ändringar av poster i domän tas inte med när du använder den här funktionen. Om du vill att funktionen DSumma ska baseras på de nya värdena måste du först spara ändringarna genom att klicka på Spara post i gruppen Poster på fliken Start och flytta fokus till en annan post, eller använda metoden Uppdatera.

Exempel

Använda funktionen DSumma i ett uttryck Du kan använda en domänfunktion (till exempel DSumma) på raden Uppdatera till i en uppdateringsfråga. Anta till exempel att du vill spåra den aktuella försäljningen per produkt i en tabell. Du skulle kunna lägga till ett nytt fält med namnet SalesSoFar i produkttabellen och köra en uppdateringsfråga för att beräkna korrekta värden och uppdatera posterna. Det gör du genom att skapa en ny fråga baserad på produkttabellen och klicka på Uppdatera på fliken Design i gruppen Frågetyp. Lägg till fältet SalesSoFar i frågerutnätet och skriv följande på raden Uppdatera till:

DSum("[Quantity]*[UnitPrice]", "Order Details", _
    "[ProductID] = "& [ProductID])

När du kör frågan beräknar den totala försäljningen för varje produkt i Access baserat på informationen från en tabell med orderdetaljer. Summan av försäljningen för varje produkt läggs till i produkttabellen.

Använda DSumma i VBA-kod 

Obs

I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

I följande exempel summeras värdena från fältet Freight för ordrar som levereras till Storbritannien. Domänen är tabellen Orders. Argumentet villkor begränsar den resulterande uppsättningen poster till de poster där ShipCountryRegion är lika med UK.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

I nästa exempel beräknas en totalsumma med hjälp av två separata villkor. Observera att enkla citattecken (') och nummertecken (#) tas med i stränguttryck, så att stränglitteralen omges av enkla citattecken och datumet omges av nummertecken när strängarna sammanfogas.

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