Hallo Skeleton,
hier eine Lösung für Access. Erstell Dir folgende Abfrage:SELECT DISTINCTROW ID, Tagesdatum, Bezeichnung, Einnahme, Ausgabe, ( _
Einnahme-Ausgabe) AS Zeilensumme
FROM meineTabelle
GROUP BY ID, Tagesdatum, Bezeichnung, Einnahme, Ausgabe, (Einnahme-Ausgabe); Diese Abfrage liefert Dir folgende Tabelle:ID Tagesdatum Bezeichnung Einnahme Ausgabe Zeilensumme
1 14.05.2007 ABC 10,00€ 0,00€ 10,00€
2 14.05.2007 DEF 0,00€ 3,00€ -3,00€
3 15.05.2007 GHI 100,00€ 0,00€ 100,00€ Jetzt kannst Du in Access mit dieser Abfrage einen Bericht erstellen. Dabei gehst Du so vor:
1. Alle Felder im Bericht aufnehmen.
2. Gruppierungsebene Tagesdatum
3. Gruppierungsoptionen -> Gruppierungsintervall: Tag
4. Sortierung nach ID aufsteigend
5. Zusammenfassungsoptionen -> Summe Zeilensumme
6. Anzeigen -> Details und Zusammenfassung
7. Gliederung und Seitenorientierung wie Du es brauchst (bspw. Gliederung 2 Querformat)
8. Berichtsentwurf ändern
9. Bezeichnungsfeld mit Beschriftung "Summe": Beschriftung ändern in "Tagessumme", Schriftbreite "Fett", Feldlayoutgröße anpassen
10. Textfeld Summe von Zeilensumme: Schriftbreite "Fett", Format "Währung"
11. Textfeld Zeilensumme Gesamtsumme Summe: Format "Währung"
Der so erstellte Bericht hat die gewünschten Summen und das gewünschte Layout.
Alternativweg: (geht [u]immer):
Einstufiger Gruppenwechsel mit satzweisem auslesen der Tabelle, dabei Bildung der Tagessummen und der Gesamtsumme in entsprechenden Hilfsfeldern. Speicherung Detaildatensätze sowie der Tages- und Gesamtergebnisse in einer zweiten Tabelle passend für die Druckausgabe. Anschließend Druckausgabe der zweiten Tabelle.
Dieser Weg ist allerdings wegen des Bedarfs an Ressourcen und des Programmieraufwands eigentlich nur noch für reine Batch-Verarbeitung auf einem Server zu empfehlen. Dort kann diese Lösung dann aber äußerst flexibel und leistungsstark sein. An den Client wird dann nur noch die fertige Druckausgabe gesendet. Also der klassische Fall für eine stored procedure.
Gruß,
Michael
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. (Brian W. Kernighan) |