お世話になっております。
{DBGridでひとつのレコードを削除した後に
DBGridの画面を更新したい(最新の情報に変更したい)
のですがやり方がわかりません。
以下は自分で考えたコードですがうまくいきません。
どなたか、アドバイスをお願いします。}
procedure TForm1.Button1Click(Sender: TObject);
begin
query2.SQL.Clear;
query2.sql.Add('DELETE FROM TEST WHERE(EmpNo='+trim(edit1.Text)+')');
query2.ExecSQL;
form1.Refresh;
DBgrid1.Refresh;
end;
以前「DBGridが空になってしまいます??」で
にしのさんがレスした方法ではダメだったのでしょうか。
もしかして DBGrid1 に接続している DataSet は query2 なのでしょうか?
そうならば、
ExecSQL 後 query2 に SELECT 文を記述し Open しなければならないのでは...
勘違いでしたら、ごめんなさい.
TQueryの内容をDBGridで表示している場合、TQueryをCloseしてOpenしなおさないと表示は更新されないと思います。
ただし、更新した後にDBGridのカーソルが先頭行になってしまうので、TQueryをCloseする前にレコード位置(主キーの値を記録するなど)を確認してOpen後にTQueryのカレントレコードを移動する必要があると思います。
皆様ありがとうございました。
解決することができました。
まだ初心者で、TQueryをCloseしてOpenをうまく
プログラムに組めていなかったようです。
ありがとうございました。
ツイート | ![]() |