私が直面しているかなり重大な問題に対する解決策を探しています。 dbGridのレコードを削除したいのですが、コード化されたボタンをクリックして「削除」を確認すると、すぐに結果が見つかりません。削除されたレコードの結果を見つけるには、プログラムを閉じて再実行する必要があります。それだけで、レコードが削除されていることがわかります。私は、Accessデータベースへの接続の接続をADOに接続されているADOのテーブルを使用していますdbGridでのレコードの削除Delphi 2010
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;
を次のように
私のコーディングは、基本的に見えます。私はappologize、いくつかの変数名は、アフリカーンス語です。 どうすればよいですか?
削除されるはずのレコードは、まだDBグリッドに表示されていますが、私はADO接続でADOテーブルを使用しています。 –
クイックビューの場合:削除後は、レコードを削除した後に1レコードをスキップします。次の前にelseを挿入する必要があります –
"tblLeerder"と "tblDeelname"は両方ともTADODataSetであり、グリッドには "tblDeelname"の内容が表示されます。 tblDeelname.deleteの後にactice:= falseおよびactive:= trueを含める必要があります。 tblLeerderがDBGridに接続されている場合、あなたは何を見たいのですか? –