Du kan använda funktionen DSumma till 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 där du identifierar ett fält i en tabell eller en fråga, eller ett uttryck där du utför en beräkning på data i 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 till att ange villkoret på raden Villkor i en fråga, ett beräknat fältuttryck i en fråga eller i 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 (som DSumma) i 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#")