Ich suche nach einer Lösung für ein ziemlich ernstes Problem, vor dem ich stehe; Ich möchte einen Datensatz in einem dbGrid löschen, aber wenn ich auf meine codierte Schaltfläche klicke und "Löschen" bestätige, finde ich keine unmittelbaren Ergebnisse. Um das Ergebnis des gelöschten Datensatzes zu finden, muss ich das Programm schließen und neu starten. Nur dann sehe ich, dass der Datensatz gelöscht wird.Löschen von Datensätzen in einem dbGrid Delphi 2010
Meine Codierung sieht im Grunde wie folgt
procedure TfrmPunte.btnDeleteClick(Sender: TObject);
var
sName, sLeerderNo : string;
begin
with dmPunte do
begin
sLeerderNo := tblLeerder['LeerderNr'];
sName := tblLeerder['NaamVan'];
if MessageDlg('Is jy seker dat jy ' + sName + ' met Leerder Nommer ' + sLeerderNo + ' wil wis van die rekords? Neem kennis dat al die rekords van sy/haar aktiwiteite ook uitgevee sal word!', mtWarning, [mbOk, mbCancel],0) = mrOK then
tblDeelname.Open;
tblDeelname.First;
while NOT tblDeelname.Eof do
begin
if tblDeelname['LeerderNr'] = sLeerderNo then
tblDeelname.Delete;
tblDeelname.Next;
end;
tblLeerder.Delete;
tblLeerder.Active := False;
tblLeerder.Active := True;
end;
end;
ich eine ADO-Tabelle verwenden verbunden Verbindung zu einer Access-Datenbank mit ADO. Ich entschuldige mich, einige Variablennamen sind in Afrikaans. Was soll ich tun?
Der Datensatz, der gelöscht werden sollte, wird weiterhin im db-Grid angezeigt, ich verwende eine ADO-Tabelle mit ADO-Verbindung. –
Auf einen Blick: Nach dem Löschen wird ein Datensatz nach dem Löschen eines Datensatzes übersprungen. Sie müssen sonst vor dem nächsten einfügen –
Ich nehme an, dass "TblLeerder" und "TblDeelname" sind beide TADODataSet und im Raster wird der Inhalt von "TblDeelname" angezeigt. Dann müssen Sie actice: = false und active: = true nach tblDeelname.delete angeben. Wenn tblLeerder mit dem DBGrid verbunden ist, ist die Frage was willst du sehen? –