Erstellen einer abfrage mit ausgeführten Gesamtsummen in Microsoft Access
Erweitert: Erfordert Expertenkenntnisse für Codierung, Interoperabilität und Mehrbenutzerfähigkeiten.
Dieser Artikel bezieht sich auf eine Microsoft Access-Datenbankdatei (.MDB) oder eine Microsoft Access-Datenbankdatei (.ACCDB).
Zusammenfassung
In diesem Artikel werden zwei Methoden veranschaulicht, mit denen Sie eine ausgeführte Gesamtsummenabfrage erstellen können. Eine ausgeführte Gesamtsummenabfrage ist eine Abfrage, bei der die Summe für jeden Datensatz eine Summe dieses Datensatzes und aller vorherigen Datensätze ist. Diese Art von Abfrage ist nützlich, um kumulative Summen für eine Gruppe von Datensätzen (oder über einen bestimmten Zeitraum) in einem Diagramm oder Bericht anzuzeigen.
Hinweis Eine Demonstration der in diesem Artikel verwendeten Technik finden Sie in der Beispieldatei Qrysmp00.exe.
Weitere Informationen
Methode 1
Die erste Methode verwendet eine DSum-Funktion und Kriterien in einer Abfrage, um im Laufe der Zeit eine ausgeführte Summe zu erstellen. Die Funktion DSum summiert den aktuellen Datensatz und alle vorherigen Datensätze. Wenn die Abfrage zum nächsten Datensatz wechselt, wird die DSum-Funktion erneut ausgeführt und aktualisiert die kumulierte Summe.
Die folgende Beispielabfrage verwendet die Tabelle Orders aus der Beispieldatenbank Northwind, um eine laufende Summe der Frachtkosten für jeden Monat im Jahr 1997 zu erstellen. Die Beispieldaten sind aus Leistungsgründen auf ein Jahr beschränkt. Da die DSum-Funktion für jeden Datensatz in der Abfrage einmal ausgeführt wird, kann es (abhängig von der Geschwindigkeit Ihres Computers) mehrere Sekunden dauern, bis die Abfrage die Verarbeitung abgeschlossen hat. Führen Sie die folgenden Schritte aus, um diese Abfrage zu erstellen und auszuführen:
Öffnen Sie die Beispieldatenbank Northwind.
Erstellen Sie eine neue Auswahlabfrage, und fügen Sie die Tabelle Orders hinzu.
Klicken Sie im Menü Ansicht auf Summen.
Hinweis Klicken Sie in Access 2007 auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Summen.
Geben Sie in der ersten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgende Auswahl für die Felder Gesamt, Sortieren und Anzeigen:
Field: AYear: DatePart("yyyy",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Der Ausdruck im Feld Feld zeigt den Jahresteil des Felds OrderDate an und sortiert diesen.
Geben Sie in der zweiten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgende Auswahl für die Felder Gesamt, Sortieren und Anzeigen:
Field: AMonth: DatePart("m",[OrderDate]) Total: Group By Sort: Ascending Show: Yes
Der Ausdruck im Feld Feld sortiert und zeigt den Monatsteil des Felds Bestelldatum als ganzzahligen Wert von 1 bis 12 an.
Geben Sie in der dritten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und wählen Sie die folgenden Optionen für die Felder Gesamt und Anzeigen aus.
HINWEIS Im folgenden Beispiel wird ein Unterstrich (_) am Ende einer Zeile als Zeilenfortsetzungszeichen verwendet. Entfernen Sie den Unterstrich vom Ende der Zeile, wenn Sie dieses Beispiel neu erstellen.
Field: RunTot: DSum("Freight","Orders","DatePart('m', _ [OrderDate])<=" & [AMonth] & " And DatePart('yyyy', _ [OrderDate])<=" & [AYear] & "") Total: Expression Show: Yes
Der Ausdruck im Feld Feld verwendet die DSum()-Funktion, um das Feld Fracht zu summieren, wenn die Werte in den Feldern AMonth und AYear kleiner oder gleich dem aktuellen Datensatz sind, den die Abfrage verarbeitet.
Geben Sie in der vierten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgende Auswahl für die Felder Gesamt, Sortieren und Anzeigen:
Field: FDate: Format([OrderDate],"mmm") Total: Group By Sort: Ascending Show: Yes
Der Ausdruck im Feld Feld wird jeden Monat in einem Textformat angezeigt, z. B. Jan, Feb, Mar usw.
Geben Sie in der fünften Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgenden Auswahlen für die Felder Summe, Kriterien und Anzeigen:
Field: DatePart("yyyy",[OrderDate]) Total: Where Criteria: 1997 Show: No
Der Ausdruck im Feld Feld filtert das Recordset der Abfrage so, dass nur Daten aus dem Jahr 1997 enthalten sind.
Führen Sie die Abfrage aus. Beachten Sie, dass im Feld RunTot die folgenden Datensätze mit einer ausgeführten Summe angezeigt werden:
AYear AMonth RunTot FDate -------------------------------------- 1997 1 2238.98 Jan 1997 2 3840.43 Feb 1997 3 5729.24 Mar 1997 4 8668.34 Apr 1997 5 12129.74 May 1997 6 13982.39 Jun 1997 7 17729.29 Jul 1997 8 22204.73 Aug 1997 9 26565.26 Sep 1997 10 32031.38 Oct 1997 11 36192.09 Nov 1997 12 42748.64 Dec
Methode 2
Die zweite Methode verwendet eine Gesamtsummenabfrage mit einer DSum()-Funktion, um eine laufende Summe für eine Gruppe zu erstellen.
In der folgenden Beispielabfrage wird die Tabelle Orders verwendet, um die Frachtkosten pro Mitarbeiter zusammenzufassen und eine laufende Summe der Fracht zu berechnen. Führen Sie die folgenden Schritte aus, um die Abfrage zu erstellen und auszuführen:
Öffnen Sie die Beispieldatenbank Northwind.mdb.
Erstellen Sie eine neue Auswahlabfrage, und fügen Sie die Tabelle Orders hinzu.
Klicken Sie im Menü Ansicht auf Summen.
Hinweis Klicken Sie in Access 2007 auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Summen.
Fügen Sie in der ersten Spalte des Abfrageentwurfsbereichs dem Feld Feld das folgende Feld hinzu, und treffen Sie die folgende Auswahl für die Felder Gesamt und Anzeigen:
Field: EmpAlias: EmployeeID Total: Group By Show: Yes
Dieses Feld gruppiert Daten nach EmployeeID.
Fügen Sie in der zweiten Spalte des Abfrageentwurfsbereichs dem Feld Feld das folgende Feld hinzu, und treffen Sie die folgende Auswahl für die Felder Gesamt und Anzeigen:
Field: Freight Total: Sum Show: Yes
Dieses Feld summiert die Frachtdaten.
Geben Sie in der dritten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und wählen Sie die folgenden Optionen für die Felder Gesamt und Anzeigen aus.
HINWEIS Im folgenden Beispiel wird ein Unterstrich (_) am Ende einer Zeile als Zeilenfortsetzungszeichen verwendet. Entfernen Sie den Unterstrich vom Ende der Zeile, wenn Sie dieses Beispiel neu erstellen.
Field: RunTot: Format(DSum("Freight","Orders","[EmployeeID]<=" _& [EmpAlias] & ""),"$0,000.00") Total: Expression Show: Yes
Der Ausdruck im Feld Feld verwendet eine DSum()-Funktion, um das Feld Fracht zu summieren, wenn die EmployeeID kleiner oder gleich dem aktuellen EmpAlias ist, und formatiert das Feld dann in Dollar.
Führen Sie die Abfrage aus. Beachten Sie, dass im Feld RunTot die folgenden Datensätze mit einer ausgeführten Summe angezeigt werden:
Employee SumOfFreight RunTot ------------------------------------------------- Davolio, Nancy $8,836.64 $8,836.64 Fuller, Andrew $8,696.41 $17,533.05 Leverling,Janet $10,884.74 $28,417.79 Peacock, Margaret $11,346.14 $39,763.93 Buchanan, Steven $3,918.71 $43,682.64 Suyama, Michael $3,780.47 $47,463.11 King, Robert $6,665.44 $54,128.55 Callahan, Laura $7,487.88 $61,616.43 Dodsworth, Anne $3,326.26 $64,942.69
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für