Vorgehensweise Erstellen einer laufenden Gesamtergebnisabfrage in Microsoft Access

Hinweis

Office 365 ProPlus wird in Microsoft 365-Apps für Unternehmen umbenannt. Weitere Informationen zu dieser Änderung finden Sie in diesem Blogbeitrag.

Advanced: erfordert Experten-Codierung, Interoperabilität und mehr Benutzerkenntnisse.

Dieser Artikel bezieht sich auf eine Microsoft Access-Datenbankdatei (MDB) oder auf eine Microsoft Access-Datenbank (ACCDB-Datei).

Zusammenfassung

In diesem Artikel werden zwei Methoden veranschaulicht, mit denen Sie eine laufende Gesamtergebnisabfrage erstellen können. Eine laufende Gesamtergebnisabfrage ist eine Abfrage, bei der die Summe für jeden Datensatz eine Summierung dieses Datensatzes und aller vorherigen Datensätze ist. Diese Art von Abfrage ist hilfreich, um kumulative Gesamtergebnisse über eine Gruppe von Datensätzen (oder über einen Zeitraum hinweg) 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 eine laufende Summe im Laufe der Zeit zu erstellen. Die DSum-Funktion 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 die kumulative Gesamtsumme wird aktualisiert.

In der folgenden Beispielabfrage wird die Tabelle " Orders " aus der Beispieldatenbank Northwind verwendet, um eine laufende Summe der Frachtkosten pro Monat in 1997 zu erstellen. Die Beispieldaten sind aus Leistungsgründen auf ein Jahr limitiert. Da die DSum-Funktion einmal für jeden Datensatz in der Abfrage ausgeführt wird, kann es einige Sekunden dauern (abhängig von der Geschwindigkeit Ihres Computers), damit die Abfrage die Verarbeitung beendet. Führen Sie die folgenden Schritte aus, um diese Abfrage zu erstellen und auszuführen:

  1. Öffnen Sie die Beispieldatenbank Northwind.

  2. Erstellen Sie eine neue Auswahlabfrage, und fügen Sie die Tabelle Orders hinzu.

  3. Klicken Sie im Menü Ansicht auf Summen.

    Hinweis: Klicken Sie in Access 2007 auf der Registerkarte Entwurf in der Gruppe einblenden/ausblenden auf Summen .

  4. Geben Sie in der ersten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und nehmen Sie die folgende Auswahl für die Felder insgesamt, Sortieren und anzeigen vor:

    Field: AYear: DatePart("yyyy",[OrderDate])
    Total: Group By
    Sort: Ascending
    Show: Yes
    

    Der Ausdruck im Feld Feld zeigt den Jahres Teil des Felds OrderDate an und sortiert ihn.

  5. Geben Sie in der zweiten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und nehmen Sie die folgende Auswahl für die Felder insgesamt, Sortieren und anzeigen vor:

    Field: AMonth: DatePart("m",[OrderDate])
    Total: Group By
    Sort: Ascending
    Show: Yes
    

    Der Ausdruck im Feld Feld sortiert und zeigt den Monats Teil des Felds Bestelldatum als ganzzahliger Wert zwischen 1 und 12 an.

  6. Geben Sie in der dritten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und nehmen Sie die folgende Auswahl für die Felder Total und Show vor.

    Hinweis: Im folgenden Beispiel wird ein Unterstrich (_) am Ende einer Position als Zeichen für die Fortsetzung der Linien verwendet. Entfernen Sie den Unterstrich am Ende der Position, 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 Field verwendet die DSum ()-Funktion, um das Freight-Feld zusammenzufassen, wenn die Werte in den Feldern AMonth und AYear kleiner oder gleich dem aktuellen Datensatz sind, den die Abfrage verarbeitet.

  7. Geben Sie in der vierten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und nehmen Sie die folgende Auswahl für die Felder insgesamt, Sortieren und anzeigen vor:

    Field: FDate: Format([OrderDate],"mmm")
    Total: Group By
    Sort: Ascending
    Show: Yes
    

    Der Ausdruck im Feld Feld zeigt jeden Monat im Text Format an, beispielsweise Jan, Feb, Mär usw.

  8. Geben Sie in der fünften Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und nehmen Sie die folgende Auswahl für die Felder Gesamt, Kriterien und anzeigen vor:

    Field: DatePart("yyyy",[OrderDate])
    Total: Where
    Criteria: 1997
    Show: No
    

    Der Ausdruck im Feld Field filtert das Recordset der Abfrage so, dass nur Daten von 1997 eingeschlossen werden.

  9. Führen Sie die Abfrage aus. Beachten Sie, dass im Feld RunTot die folgenden Datensätze mit einer laufenden 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

Bei der zweiten Methode wird eine Gesamtergebnisabfrage mit einer DSum ()-Funktion verwendet, um eine laufende Summe für eine Gruppe zu erstellen.

Die folgende Beispielabfrage verwendet die Tabelle "Orders" zum Summieren der Frachtkosten pro Mitarbeiter sowie zum Berechnen einer laufenden Summe der Fracht. Führen Sie die folgenden Schritte aus, um die Abfrage zu erstellen und auszuführen:

  1. Öffnen Sie die Beispieldatenbank Northwind. mdb.

  2. Erstellen Sie eine neue Auswahlabfrage, und fügen Sie die Tabelle Orders hinzu.

  3. Klicken Sie im Viewmenu auf Gesamtwerte.

    Hinweis: Klicken Sie in Access 2007 auf der Registerkarte Entwurf in der Gruppe einblenden/ausblenden auf Summen .

  4. Fügen Sie in der ersten Spalte des Abfrageentwurfs Rasters das folgende Feld zum Feld hinzu, und nehmen Sie die folgende Auswahl für die Felder "Summe" und "anzeigen" vor:

    Field: EmpAlias: EmployeeID
    Total: Group By
    Show: Yes
    

    In diesem Feld werden die Daten nach EmployeeID gruppiert.

  5. Fügen Sie in der zweiten Spalte des Abfrageentwurfs Rasters das folgende Feld zum Feld hinzu, und nehmen Sie die folgende Auswahl für die Felder "Summe" und "anzeigen" vor:

    Field: Freight
    Total: Sum
    Show: Yes
    

    In diesem Feld werden die Frachtdaten summiert.

  6. Geben Sie in der dritten Spalte des Abfrageentwurfsbereichs den folgenden Ausdruck in das Feld Feld ein, und nehmen Sie die folgende Auswahl für die Felder Total und Show vor.

    Hinweis: Im folgenden Beispiel wird ein Unterstrich (_) am Ende einer Position als Zeichen für die Fortsetzung der Linien verwendet. Entfernen Sie den Unterstrich am Ende der Position, 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 Field verwendet eine DSum ()-Funktion, um das Freight-Feld zusammenzufassen, wenn die EmployeeID kleiner als oder gleich dem aktuellen EmpAlias-Wert ist, und formatiert das Feld dann in Dollar.

  7. Führen Sie die Abfrage aus. Beachten Sie, dass im Feld RunTot die folgenden Datensätze mit einer laufenden 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