注册 登录
编程论坛 Delphi论坛

如何在DBGrid控件实时显示access更新的数据?

court1 发布于 2010-07-28 14:44, 2619 次点击
我在一“添加”按钮添加如下代码 ( 此按钮主要实现将edit.text添加到access数据库中)
procedure Tgzgl.Button2Click(Sender: TObject);
 var sql:string;
  begin
  with adoquery1 do
  begin
  close;
  sql.Clear ;
  sql.Add('insert into [pay]([date],[id],[name],[bpay],[apay]) values (:date,:id,:name,:bpay,:apay)');
   Parameters.ParamByName('date').value:=edit1.text;
   Parameters.ParamByName('id').value:=edit2.text;
   Parameters.ParamByName('name').value:=edit3.text;
   Parameters.ParamByName('bpay').value:=edit4.text;
   Parameters.ParamByName('apay').value:=edit5.text;

   adoquery1.ExecSQL;
   Refresh;
   adoquery1.Close;
   adoquery1.SQL.Clear;
   adoquery1.SQL.Add('select * from pay');
   adoquery1.Open;
   //adoquery1.active:=false;
   //adoquery1.active:=true;
   showmessage('添加成功');
  end;
  end;
end.

每次点击添加运行查看access里有新增加的数据,但DBGrid控件里不显示新增加的数据,只有重新运行才显示上次添加的数据,
请问如何让DBGrid实时显示更新的数据啊?

[ 本帖最后由 court1 于 2010-7-28 14:52 编辑 ]
1 回复
#2
court12010-08-02 15:26
一位好心人告诉我:
adoquery1.ExecSQL;
   Refresh;
   adoquery1.Close;
   adoquery1.SQL.Clear;
   adoquery1.SQL.Add('select * from pay');
   adoquery1.Open;
   //adoquery1.active:=false;
   //adoquery1.active:=true;
   showmessage('添加成功');
改成:
 execsql;
  adoquery2.Requery();
  showmessage('保存成功!')
1