Noch ne kleine Anmerkung zu deinem Sourcecode:
s := 'select LFDNR from teilnehmer';
query1.close;
Query1.Sql.Clear;
Query1.Sql.Add(s);
Query1.ExecSQL; <-- nur bei INSERT / UPDATE / DELETE-Statements
Query1.Active:=true;
Query1.First; <-- Nach dem Open (oder Active:=true) der
Query steht diese immer auf dem ersten Datensatz, kannst du dir also sparen
Gruß
Daniel