我想在添加这个窗口添加数据后,主窗体也刷新数据,这个问题我想了很久了,还是没得到解决,所有想来这里碰碰运气,望高手们求救,毕业项目的

解决方案 »

  1.   

    很简单的操作,如果是datagridset datagird1.datasource=rs 后,显示数据,那么
    rs.addnew 后,datagrid会自动显示添加,你根本不需要添加任何代码
      

  2.   

    注意你的Conn对象,一定要是公共的,比如放到模块里,用个Public来定义Conn对象。
      

  3.   

    你的主窗体是如何获得和显示数据的? 把那个模块前缀改成Public, 然后在这个窗体里面调用一下即可. 
    或者直接更改主窗体的form_load事件为public, 直接调用重新加载. 这都是比较"粗"的办法.
      

  4.   

    我个人建议从结构上解决,例如把数据库操作封装起来成为一个类或窗体,这里假设是一个类ClassDB.这个ClassDB类里面设计一个事件DataChanged,当数据有改变时就触发这个事件.然后在一个标准模块中定义一个全局对象(Public oPubDB as ClassDB),并让工程从Sub Main启动,在Sub Main中对oDB初始化.然后每个窗体中都定义各自的私有对象oDB,然后Set到这个全局的oPubDB.接着就方便了.当有新数据输入后,可以在类里面触发事件:界面(即窗体)------[输入数据]----->ClassDB------>产生DataChanged事件而每个窗体由于都有一个SET到公共对象oPubDB的私有对象oDB,那么有DataChanged事件产生时大家都能收到,然后就可以在这个事件里更新界面了,代码方面非常少,而管理这种同步更新的消息却很方便.
      

  5.   

    呵呵,老马,对新人要求高了一点吧?楼主,看你的单元格五颜六色的,怕不是 DataGrid 吧?提问题时要把自己的实现说清楚。因为解决方法是随你的实现而异的。如果你是用 MSHFlexGrid 绑定记录集的,那么:rs.Requery 就可以了。