In der Tabelle AUSGABEN sind drei Datensätze drin.
Der gesamte Code lautet:
Delphi-Quellcode:
Kassenbuch.ExecSQL('delete from kassenbuch');
// filtern
Ausgaben.active := false;
Ausgaben.SQL.Clear;
Ausgaben.SQL.Add('select * from ausgaben');
Ausgaben.active := True;
// Ausgaben ermitteln
Ausgaben.First;
while not Ausgaben.Eof do
begin
Kassenbuch.Append;
Kassenbuch.FieldbyName('datum').asVariant := Ausgaben.FieldbyName('datum').asVariant;
Kassenbuch.FieldbyName('zurgnr').asInteger := Ausgaben.FieldbyName('zurgnr').asInteger;
Kassenbuch.FieldbyName('betrag').asVariant := Ausgaben.FieldbyName('betrag').asVariant * -1;
Kassenbuch.FieldbyName('betreff').asString := Ausgaben.FieldbyName('vermerk').asString;
Kassenbuch.Post;
Ausgaben.Next;
end;
Kassenbuch.Refresh;
showMessage('Das Kassenbuch wurde erfolgreich erstellt');
Und wenn dieses Ereignis ausgeführt wird, wird lediglich der erste Datensatz aus der
DB AUSGABEN kopiert. Die beiden nächsten nicht mehr.
Merkwürdiger Weise biegt der beim 2. oder 3. mal auslösen des Ereignises in eine endlos Schleife ein und kopiert den zweiten Datensatz immer und immer wieder ... macht keinen Sinn in meinen Augen.
Und ich steh langsam wirklich auf dem Schlauch, wo mein Denkfehler ist.
Nochmals danke für Eure Hilfe.