Sie können die DSum-Funktion verwenden, um die Summe einer Gruppe von Werten in einem angegebenen Satz von Datensätzen (einem Domäne ) zu berechnen. Verwenden Sie die Funktion DSum in einem vba-Modul (Visual Basic for Applications), einem Makro, einem Abfrageausdruck oder einem Berechnetes Steuerelement.
So können Sie beispielsweise die DSum-Funktion in einem berechneten Feldausdruck in einer Abfrage verwenden, um den Gesamtumsatz zu berechnen, der von einem bestimmten Mitarbeiter über einen bestimmten Zeitraum erzielt wurde. Oder Sie können die DSum-Funktion in einem berechneten Steuerelement verwenden, um eine laufende Summe von Umsätzen für ein bestimmtes Produkt anzuzeigen.
Syntax
DSum ( Ausdruck ; Domäne [; Kriterien] )
Die Syntax der DSum-Funktion weist die folgenden Argumente auf:
Argument | Beschreibung |
Ausdruck | Erforderlich. Ein Ausdruck, der das numerische Feld angibt, dessen Werte Sie addieren möchten. Es kann sich um einen Zeichenfolgenausdruck handeln, der ein Feld in einer Tabelle oder Abfrage angibt, oder um einen Ausdruck, der für die Daten in diesem Feld eine Berechnung durchführt. Sie können in Ausdruck den Namen eines Felds in einer Tabelle, ein Steuerelement in einem Formular, eine Konstante oder eine Funktion einfügen. Wenn Ausdruck eine Funktion enthält, kann es sich um eine integrierte oder um eine benutzerdefinierte Funktion handeln, aber nicht um ein anderes Domänenaggregat oder eine SQL-Aggregatfunktion. |
Domäne | Erforderlich. Ein Zeichenfolgenausdruck, der die Gruppe von Datensätzen angibt, die die Domäne bilden. Es kann sich um einen Tabellennamen oder um einen Abfragenamen für eine Abfrage handeln, die keinen Parameter erfordert. |
Kriterien | Optional. Ein Zeichenfolgenausdruck, der verwendet wird, um den Datenbereich einzuschränken, für den die DSum-Funktion ausgeführt wird. Kriterien entsprechen z . B. häufig der WHERE-Klausel in einem SQL-Ausdruck ohne das Wort WHERE. Wenn Kriterien nicht angegeben werden, wertet die DSum-Funktionexpr für die gesamte Domäne aus. Jedes Feld, das in Kriterien enthalten ist, muss ebenfalls ein Feld in der Domäne sein; Andernfalls gibt die DSum-Funktion einen Null-Wert zurück. |
Anmerkungen
Wenn kein Datensatz die Bedingungen des Arguments Kriterien erfüllt oder wenn "Domäne" keine Datensätze enthält, gibt die DSum-Funktion Null zurück.
Unabhängig davon, ob Sie die DSum-Funktion in einem Makro, Modul, Abfrageausdruck oder berechneten Steuerelement verwenden, müssen Sie das Argument Kriterien sorgfältig erstellen, damit es korrekt ausgewertet wird.
Sie können die DSum-Funktion verwenden, um Kriterien in der Zeile Kriterien einer Abfrage, einem berechneten Feld in einem Abfrageausdruck oder in der Zeile Aktualisieren einer Aktualisierungsabfrage anzugeben.
Hinweis:Sie können die DSum- oder Summe-Funktion in einem berechneten Feldausdruck einer Gesamtsummenabfrage verwenden. Wenn Sie die DSum-Funktion verwenden, werden Werte berechnet, bevor die Daten gruppiert werden. Wenn Sie die Summe-Funktion verwenden, werden die Daten gruppiert, bevor Werte im Feldausdruck ausgewertet werden.
Möglicherweise möchten Sie die DSum-Funktion verwenden, wenn Sie die Summe einer Gruppe von Werten aus einem Feld anzeigen müssen, das sich nicht in der Datensatzquelle für Ihr Formular oder Ihren Bericht befindet. Angenommen, Sie verfügen über ein Formular, das Informationen zu einem bestimmten Produkt anzeigt. Sie können die DSum-Funktion verwenden, um eine laufende Summe der Verkäufe dieses Produkts in einem berechneten Steuerelement zu verwalten.
Tipp
Wenn Sie eine laufende Summe in einem Steuerelement in einem Bericht verwalten müssen, können Sie die Eigenschaft "RunningSum" dieses Steuerelements verwenden, wenn das Feld, auf dem es basiert, in der Datensatzquelle für den Bericht enthalten ist. Mithilfe der DSum-Funktion können Sie eine laufende Summe in einem Formular verwalten.
Hinweis:Bei Verwendung dieser Funktion werden nicht gespeicherte Änderungen an Datensätzen in Domäne nicht berücksichtigt. Wenn die DSum-Funktion auf den geänderten Werten basieren soll, müssen Sie die Änderungen zunächst speichern, indem Sie entweder auf der Registerkarte Start in der Gruppe Datensätze auf Datensatz speichern klicken, damit der Fokus zu einem anderen Datensatz wechselt, oder indem Sie die Methode Aktualisieren verwenden.
Beispiele
Verwenden der DSum-Funktion in einem AusdruckSie können eine Domänenfunktion (z. B. DSum) in der Zeile Aktualisieren auf einer Updateabfrage verwenden. Angenommen, Sie möchten den aktuellen Umsatz nach Produkt in einer Products-Tabelle nachverfolgen. Sie können der Tabelle Products ein neues Feld namens SalesSoFar hinzufügen und eine Aktualisierungsabfrage ausführen, um die richtigen Werte zu berechnen und die Datensätze zu aktualisieren. Erstellen Sie hierzu eine neue Abfrage, die auf der Tabelle Products basiert, und klicken Sie auf der Registerkarte Entwurf in der Gruppe Abfragetyp auf Aktualisieren. Fügen Sie dem Abfrageraster das Feld SalesSoFar hinzu, und geben Sie Folgendes in die Zeile Aktualisieren auf ein:
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Wenn Sie die Abfrage ausführen, berechnet Access die Gesamtsumme der Umsätze für jedes Produkt anhand der Informationen aus der Tabelle "Order Details". Die Summe der Umsätze für jedes Produkt wird der Tabelle "Produkte" hinzugefügt.
Verwenden von DSum in VBA-Code
Hinweis:Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications). Wenn Sie weitere Informationen zum Arbeiten mit VBA wünschen, wählen Sie Entwicklerreferenz in der Dropdownliste neben Suchen aus, und geben Sie einen oder mehrere Begriffe in das Suchfeld ein.
Im folgenden Beispiel werden die Werte aus dem Feld "Freight" für Bestellungen addiert, die in Großbritannien (United Kingdom, UK) zum Versand kommen. Als Domäne wird die Tabelle "Orders" verwendet. Das Argument Kriterien beschränkt die resultierenden Datensätze auf solche, bei denen für "ShipCountryRegion" der Wert "UK" angegeben ist.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Im nächsten Beispiel wird eine Summe mit zwei separaten Kriterien berechnet. Beachten Sie, dass einfache Anführungszeichen (') und Zahlenzeichen (#) im Zeichenfolgenausdruck enthalten sind, sodass beim Verketten der Zeichenfolgen das Zeichenfolgenliteral in einfache Anführungszeichen und das Datum in Nummernzeichen eingeschlossen wird.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")