主程序:fmain
窗体1:fkhxx:客户档案表,dbgrideh在这个窗体里,2个按钮,新增,修改
窗体2:fkhxx_1:用来在新增或修改客户信息时,显示客户的代码和名称等信息
数据集:qry_khxx连接datasource1.该数据集分别连接fkhxx 和 fkhxx_1这2个窗体
现在的问题是:当在主程序运行后 打开fkxx窗体后,按新增和修改都没问题,但只要再退出khxx窗体后再进去 如果再按新增和修改的话 他就说qry_khxx已经被关闭
奇怪的是在 fkhxx里的那个dbgrideh就能显示客户信息,但在fkhxx_1里就没有了

解决方案 »

  1.   

    难道一个query只能连接同一个窗体下的数据感知控件,而不能连接其他窗体下的数据感知控件来append和edit?
    我现在就是这个问题
      

  2.   

    可以有多个dbgrid连接同一个adoquery的。根据我的理解,你那个fkhxx窗体在重新打开的时候,adoquery是打开的状态吗?
    如果不是的话,直接点新增就会出问题。
      

  3.   

    大哥,吓死我了!
    让我联想到了《一个馒头引发的血案》!
    你单步跟踪一下,看在哪里关闭了Adoquery
      

  4.   

    设计方法的问题
    你现在的情况是:重新打开又进去的时候qry_khxxx是关闭的你的fkhxx如果是主窗体fMain在点击菜单时创建窗体,也就是窗体fkhxx在程序中是个avaliable form
    你的qry_khxxx的动态创建及打开语句写在fkhxx的onshow中
    点击新增和修改按钮fkhxx1的窗体也是动态创建即可
      

  5.   

    哎,设计逻辑问题,你肯定是关关闭了datasource1
      

  6.   

    嗯,数据集控件专门做一个DataModule用来存放
      

  7.   

    FormCreate中:
      if not ADOQuery1.active then ADOQuery1.Open;