Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Win XP; Access97; Zwischensummenbildung bei Auswahlabfrage





Frage

Für eine Abfrage von Beträgen einer bestimmten Kostenart, (hier fhk = Fahrtkosten) will ich mir in einer zusätzlichen Spalte neben jedem aufgelisteten Betrag die Zwischensumme ausgeben lassen. In der ersten Zeile der ausgegebenen Beträge würden beide Werte identisch sein, weil ja noch nichts aufsummiert ist, und die letzte Zeile würde der aufsummierte Betrag der Gesamtsumme entsprechen. Die kleine Testdatenbank sieht so aus: Dateiname: Kosten; Feld 1: Datum; (Funktion: Gruppierung) Feld 2: KstArt; (Funktion Gruppierung) Feld 3: Betrag (Funktion Gruppierung) Zusatzfeld: lfdSumme: Summe (Betrag); (Funktion: Summe) Es sollen alle seit 1.1.2002 entstandenen Fahrtkosten ausgegeben werden und dazu jeweils die laufende Summe. In SQL ausgedrückt: Select Kosten.Datum, Kosten.KstArt, Kosten.Betrag, Sum([Betrag]) As Ausdr1 From Kosten Grouped by Kosten.Datum, Kosten. KstArt, Kosten.Betrag Having(((Kosten.Datum)>=#1/1/2002#) And ((Kosten.KstArt) = "fhk")); Es klappt nicht. In der Spalte lfdSumme erscheinen die gleichen Zahlenwerte wie in der Betrag-Spalte. Was ist falsch? Die Access-Hilfe habe ich vergeblich durchwühlt. Ein einziger Dschungel. Queelun

Antwort 1 von struppi

Hallo,
Eine laufende Summe kannst Du nur bilden wenn in der Abfrage eine eindeutige Sortierung mtw aufsteigend eingebaut wird.
Danach läßt sich mit DSum eine Datensatzweise Addierung der Kosten realisieren.
Die Abfrage-Funktion sieht dann etwa so aus:

Public Function kumulieren(longID As Long, strID As String, strSpalte As String, strTabelle As String) As Integer
kumulieren = DSum(strSpalte, strTabelle, strID & "<=" & longID)
End Function

strSpalte ist das Kostenfeld
strTabelle ist Deine Abfrage
strID die Sortier-ID
longID ist die momentane Datensatz ID

Das Prinzip der Funktion ist es, im jeweiligem Datensatz die Id zu lesen und eine Abfrage auszuführen in der alle Datensätze unterhalb dieser ID enthalten sind. In dieser Abfrage wird dann die Gesamtsumme der Kosten gebildet und Datensatzweise eingetragen.
gruß struppi
PS:
Wenn Du damit Probleme hast, schick eine DB mit paar relevanten Datensätzen ..

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: