Sie können die DomSumme-Funktion verwenden, um die Summe einer Gruppe von Werten in einer angegebenen Gruppe von Datensätzen (einer Domäne) zu berechnen. Verwenden Sie die DomSumme-Funktion in einem Visual Basic for Applications (VBA)-Modul, einem Makro, einem Abfrageausdruck oder einem berechneten 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(Ausdr, 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. Hierbei kann es sich um einen Zeichenfolgenausdruck handeln, der ein Feld in einer Tabelle oder Abfrage identifiziert, oder um einen Ausdruck, der eine Berechnung der Daten in diesem Feld 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 zum Einschränken des Datenbereichs verwendet wird, 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 weggelassen werden, wertet die DomSumme-Funktiondie Auswertung für die gesamte Domäne aus. Jedes Feld, das in den Kriterien enthalten ist, muss auch ein Feld in der Domäne sein. Andernfalls gibt die DomSumme-Funktion Null 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 DomSumme-Funktion verwenden, um Kriterien in der Zeile Kriterien einer Abfrage, in einem berechneten Feld in einem Abfrageausdruck oder in der Zeile "Aktualisieren für " einer Aktualisierungsabfrage anzugeben.
Hinweis
Sie können entweder die DomSumme-Funktion oder die Summe-Funktion in einem berechneten Feldausdruck in 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.
Sie können die DomSumme-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, in dem Informationen zu einem bestimmten Produkt angezeigt werden. Sie können die DomSumme-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 DomSumme-Funktion in einem Ausdruck Sie können eine Domänenfunktion (z. B. DSum) in der Zeile " Aktualisieren bis " einer Aktualisierungsabfrage verwenden. Angenommen, Sie möchten den aktuellen Umsatz nach Produkt in einer Artikeltabelle nachverfolgen. Sie können der Tabelle "Artikel" 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 dazu eine neue Abfrage basierend auf der Tabelle "Produkte", und klicken Sie auf der Registerkarte "Entwurf " in der Gruppe "Abfragetyp" auf "Aktualisieren". Fügen Sie das Feld "SalesSoFar" dem Abfrageraster hinzu, und geben Sie Folgendes in die Zeile "Aktualisieren nach " 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 Gesamtsumme anhand von zwei getrennten Kriterien berechnet. Beachten Sie, dass einfache Anführungszeichen (') und Nummernzeichen (#) in den Zeichenfolgenausdruck eingeschlossen sind, sodass beim Verketten der Zeichenfolgen das Zeichenfolgenliteral in einfache Anführungszeichen und das Datum in Pfundzeichen eingeschlossen wird.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")