主界面上是一个dbgrid,用于显示某access中的数据;从另外一个窗体输入新数据(检查数据库了,新数据输入成功),我希望输入新数据后,窗体一关闭,主界面的dbgrid里面数据马上更新.
但是,我用的是access+ado,用了adoquery,总是不能做到实时更新,只有重新打开才能更新.请问,如何解决,谢谢.

解决方案 »

  1.   

    子窗体关闭的时候,把主窗的ADO先Close再OPEN
      

  2.   

    是adoquery1.close;
       adoquery1.open; 吗?不行啊..55555555555555
      

  3.   

    ADOquery1.sql.clear;
    ADOquery1.sql.add('select * from 表');
    ADoQuery.open;
    一定成功的,我一直被这个问题烦久了,才解决!
      

  4.   

    输入新数据窗体中定义一个boolean形变量
    数据输入成功变量为true 反之为false
    数据输入窗体关闭时if 变量=true then
    begin
    主界面.adoquery1.close;
    主界面.adoquery1.sql.clear;
    主界面.adoquery1.sql.add('select * from table where 你的条件')
    主界面.adoquery1.open;
    窗体.close;
    end
    else
    窗体.close
      

  5.   

    首先肯定是要重新再查一遍的
    樓主看用這個試試
      AdoQuery1.Requery([]);
      

  6.   

    各位,如果是单独弄两个Form,按照你们说的,都可以。。
    可是,放到我的系统中,就不行了阿,更新不了啊,我认为原理就是上面所说的,可是,哪儿出了问题了呢?唉,郁闷阿
    顺便问一下各是位,如果要修改数据,是用edit,insert之类的方法修改ADOTable中的数据好呢,还是直接用SQL语句修改数据库好呢?谢谢。
      

  7.   

    我也曾被这个问题困扰过,我的解决方法是: 在form close 中添加 adoconn.close;adoconn.open;  然后在 form events中的oncreate 中选择FormCreate ,其中FormCreate中包含wybwml2008(波波)的内容
      

  8.   

    access问题
    数据更新

    dbgrid要过一段时间才能反映过来
    加断延时
    Sleep(500)

    Sleep(1000)
    再进行adoquery.requery;