So erstellen Sie eine Ausgeführte Ergebnisabfrage 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.

Erweitert: Erfordert Codierungs-, Interoperabilitäts- und Mehrbenutzerkenntnisse von Experten.

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 Berechnungsabfrage erstellen können. Eine ausgeführte Ergebnisabfrage ist eine Abfrage, bei der die Summe für jeden Datensatz eine Summe dieses Datensatzes und aller vorherigen Datensätze ist. Diese Abfrageart ist nützlich, um kumulierte Summen über 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 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 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 einmal für jeden Datensatz in der Abfrage ausgeführt wird, kann es (abhängig von der Geschwindigkeit Ihres Computers) mehrere Sekunden dauern, bis die Abfrage die Verarbeitung abgeschlossen hat. Gehen Sie folgendermaßen vor, 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 "Bestellungen" hinzu.

  3. Klicken Sie im Menü "Ansicht" auf "Summen".

    Hinweis Klicken Sie in Access 2007 auf der Registerkarte "Entwurf" in der Gruppe "Anzeigen/Ausblenden" auf "Summen".

  4. Geben Sie in der ersten Spalte des Abfrageentwurfsrasters den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgenden Auswahlen 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.

  5. Geben Sie in der zweiten Spalte des Abfrageentwurfsrasters den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgenden Auswahlen 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 zwischen 1 und 12 an.

  6. Geben Sie in der dritten Spalte des Abfrageentwurfsrasters den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgenden Auswahlen für die Felder Gesamt und Anzeigen.

    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 erneut 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 Funktion DSum() zum Summieren des Felds Freight, 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 Abfrageentwurfsrasters den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgenden Auswahlen für die Felder Gesamt, Sortieren und Anzeigen:

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

    Der Ausdruck im Feldfeld wird jeden Monat in einem Textformat angezeigt, z. B. Jan, Februar, Mrz usw.

  8. Geben Sie in der fünften Spalte des Abfrageentwurfsrasters 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 Feldfeld filtert das Recordset der Abfrage, um nur Daten aus 1997 einzuschließen.

  9. Führen Sie die Abfrage aus. Beachten Sie, dass das RunTot-Feld die folgenden Datensätze mit einer laufenden Summe anzeigt:

    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 Ergebnisabfrage mit einer DSum()-Funktion, um eine laufende Summe über eine Gruppe zu erstellen.

Die folgende Beispielabfrage verwendet die Tabelle "Bestellungen", 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:

  1. Öffnen Sie die Beispieldatenbank "Northwind.mdb".

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

  3. Klicken Sie im Viewmenu auf "Summen".

    Hinweis Klicken Sie in Access 2007 auf der Registerkarte "Entwurf" in der Gruppe "Anzeigen/Ausblenden" auf "Summen".

  4. Fügen Sie in der ersten Spalte des Abfrageentwurfsrasters dem Feld Feld das folgende Feld hinzu, und treffen Sie die folgenden Auswahlen für die Felder Gesamt und Anzeigen:

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

    In diesem Feld werden Daten nach EmployeeID gruppiert.

  5. Fügen Sie in der zweiten Spalte des Abfrageentwurfsrasters dem Feld Feld das folgende Feld hinzu, und treffen Sie die folgenden Auswahlen für die Felder Gesamt und Anzeigen:

    Field: Freight
    Total: Sum
    Show: Yes
    

    Dieses Feld summiert die Frachtdaten.

  6. Geben Sie in der dritten Spalte des Abfrageentwurfsrasters den folgenden Ausdruck in das Feld Feld ein, und treffen Sie die folgenden Auswahlen für die Felder Gesamt und Anzeigen.

    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 erneut 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 "Freight" zu summieren, wenn die EmployeeID kleiner oder gleich der aktuellen EmpAlias ist, und formatiert das Feld dann in Dollar.

  7. Führen Sie die Abfrage aus. Beachten Sie, dass das RunTot-Feld die folgenden Datensätze mit einer laufenden Summe anzeigt:

    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