Ja, weil wenn der 1. Datensatz gelöscht wurde, steht der Datensatzzeiger auf dem 2. jedoch für die Prozedure die du da hast dazu, dass auch nach dem löschen auch ein Datensatz vor gesprungen wird...
Du musst die Prozedure so schreiben, dass "Table1.Next;" nur ausgeführt wird, wenn nicht gelöscht wurde...
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| if Key = #13 then begin Table1.Open; Table1.First; while not Table1.eof do begin if Table1.FieldByName('UmlagNr').AsString = Edit1.Text then begin Table1.Delete; end else begin Table1.Next; end; end; end; |
Die schreibweise ist zwar nicht die professionellste, aber es funzt..