Der SQL-Befehl sollte dann etwa so aussehen:
"SELECT [SOLL], [HABEN], ([SOLL]-[HABEN]+SALDO) AS SALDO FROM KONTO...
Die Spalte Saldo sollte dann also die aktuelle Summe der getätigten
Buchungen haben.
Bisher habe ich bei der Auswertung der Daten (Ein VB-DataReport) eine Do
Until Recordset.EOF Schleife benutzt um das Feld Saldo zu berechnen (Keine
Performance-Einschränkung).
Ich möchte jedoch denn Saldo auch in einem DATAGrid angezeigt bekommen mit
einem Execute SQL-Befehl
Bei aktuallisierung des DatatGrid mit einer Do Until Recordset.EOF Schleife
dauert mir das jedoch zu lange.
Durch bestimmte Umstande ist eine Excel-Datei Ist in diesem Falle nicht
möglich.
Villen Dank für jeden guten Ratschlag.
Donald Peter
Prinzipiell funktioniert das mit einer Unterabfrage (reines SQL-Statement).
Vielleicht hilft dir folgendes weiter:
SELECT *, (SELECT SUM([SOLL] - [HABEN]) FROM KONTO as SumSaldo WHERE
SumSaldo.Primärkey <= KONTO.Primärkey) AS [SALDO]
FROM KONTO
ORDER BY KONTO.Primärkey;
Für Primärkey steht dein Primärschlüsselfeld der Tabelle KONTO (Wie das Feld
heisst, kann ich aus deinen Angaben nicht erkennen).
Gruss, Horst
Donald Peter <don...@active.ch> schrieb in im Newsbeitrag:
3b3710bd$0$2439$4d4e...@news.ch.uu.net...
Peter
"Donald Peter" <don...@active.ch> schrieb im Newsbeitrag
news:3b3710bd$0$2439$4d4e...@news.ch.uu.net...
...
Anderseits, hätte ich etwas mehr Geld beiseite, könnte ich mir natürlich
auch den CrystalReport leisten, bei welchem man Formeln mit Laufsummen in
der Detail-Gruppe plazieren könnte, was bei einem DataReport schlicht nicht
möglich ist.
"Peter Fleischer" <peter_fleis...@mail.ru> schrieb im Newsbeitrag
news:9h7hdf$va4$04$2...@news.t-online.com...
Vielen Dank für deinen Tip.
Gruss: Donald
"Horst Innerkofler" <hinn...@fhl.li> schrieb im Newsbeitrag
news:uy04Z4X$AHA.1288@tkmsftngp07...
Peter
Donald Peter <don...@active.ch> schrieb in im Newsbeitrag:
3b375990$0$3383$4d4e...@news.ch.uu.net...
...
> Ich hatte Erheblich Performance-Einbusse wenn ich die Salden im Adodc
> einzeln berechnete (Ca 400 Record's).
> Dies wäre jedesmal der Fall, wenn sich ein einzelner Record ändern würde.
> Das DataGrid stellt diese Änderungen im Recordset jedenfalls in RealTime
auf
> dem Bildschirm dar.
> Wenn ich aber die Salden in einem eigenen Recordset berechnete, ging das
> recht zügig, das heiss man merkte fast nichts. Ich brauchte dann nur noch
> das Recordset dem DataReport zuzuweisen.
>
> Anderseits, hätte ich etwas mehr Geld beiseite, könnte ich mir natürlich
> auch den CrystalReport leisten, bei welchem man Formeln mit Laufsummen in
> der Detail-Gruppe plazieren könnte, was bei einem DataReport schlicht
nicht
> möglich ist.
...
Ich war wirklich erstaunt, dass SQL (unter Mithilfe deines Wissens:-) So
stark sein kann!
Ich brauchte jetzt nämlich bloss noch den SQL anzupassen, und dem DataGrid
die Spalte Saldo hinzuzufügen, und alles lief hervorragend, mit einer rasend
schnellen Geschwindigkeit.
(Allerdings muss ich noch erwähnen dass ich zwar einen Primary [Hauptkonto#]
habe, ich in diesem Falle die Anordnung jedoch nach dem Datum ausgerichtet
habe, um eine falsche Kalkulation zu vermeiden.)
Public Const SQL001A = "SELECT *, (SELECT SUM([Soll] - [Haben]) FROM
Hauptkonto as SumSaldo WEHRE [SumSaldo].[Datum]<=[Hauptkonto].[Datum]) AS
Saldo FROM Hauptkonto ORDER BY Datum"
Nochmals Herzlichen Dank!!!
Gruss: Donald
"Horst Innerkofler" <hinn...@fhl.li> schrieb im Newsbeitrag
news:uy04Z4X$AHA.1288@tkmsftngp07...
Mit freundlichen Grüssen: Donald
"Peter Fleischer" <peter.fleis...@gmx.de> schrieb im Newsbeitrag
news:9h7qer$frq$03$1...@news.t-online.com...
"Donald Peter" <don...@active.ch> schrieb:
> hätte ich etwas mehr Geld beiseite, könnte ich mir
> natürlich auch den CrystalReport leisten,
Eine aeltere Version davon wird mit VB mitgeliefert.
[TOFU entfernt] www.got.to/quote