我在一个页面用了一个datagrid控件,连接到一个数据库环境的某表,是在代码中设置的,用的是datagrid1.datamember=“aaa”,显示完全正常,我在另外一个页面实现了在这个表内删除和添加记录的功能,为什么我删除添加完成后,datagrid显示的数据却不变呢,就算我把datagrid所在的页面关掉,重新打开都不行,只有把程序关闭再重新运行才可以看到添加删除后的结果,也就是说,在更新数据库完成后,数据库的内容已经变化了,但是datagrid显示的却不变,为什么?我用了form.refresh和datagrid1.refresh都不行啊!非常急,谢谢~~

解决方案 »

  1.   

    如果你用控件,你就设datagrid.datasource=adodc1,用adodc1来操作,很稳当
    如果你用ADO代码:rs.open "...",...
    set datagrid1.datasource=rs
      

  2.   

    我刚刚也碰到你一样的问题了,我当时侯也是添加后datagrid中的数据不变,我也是用的myarts所说的那种,因为我在按完确定按纽后有一个unload me,而我一开始是把那些刷新datagrid中数据的代码放在unload me前面,后来我把这些放在此代码的后面,一切都好了,不知道你是不是和我一样的情况啊?
      

  3.   

    谢谢棉花,的确是那样,这样解决是没错,就不用重新弄了,多谢!!
    楼上的几位也非常感谢。我的datasourse应该是没错的。我再重新试一下。
      

  4.   

    添加第一次的时候点关闭(unload me|view!datagrid1.refresh),然后view页面打开,记录的确更新了, 可再重新操作一次又不行了,怪啊。
      

  5.   

    我用datagrid的时候,添加完第一行,没显示出来,添加完第二行,还是没显示出来,添加完第3行后,发现第一行出来了,也没有用fresh,就这样了。
    不知还有没有别的办法解决。为什么添加之后要关闭呢
      

  6.   

    set form=nothing
    重新打开后即可:))))
      

  7.   

    不建議用adodc,這個東西不好,等寫多就知道麻煩了。之所以unload 以後再打開因為數據庫要完成update過程。
    set form=nothing
    重新打开后即可:))))//////都是刷新數據庫的表現
    所以在每次刪除以後,將recordset.movefirst。然後再開就不會有問題,不需要關閉form
      

  8.   

    datagrid是有刷新慢的问题。你可以把connection关掉,然后再重新open
      

  9.   

    我是这样做的:
    建立两个窗体:form1 ,form2
    form1上有datagrid1和command1
    form2上有一个timer,interval为50
    form1:
           Private Sub Command1_Click()
              Unload Me
           End Sub
           Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
              If UnloadMode = vbFormCode Then
                  Load form2
                  form2.Show
                  Unload Me
              End If
           End Subform2:
           Private Sub Timer1_Timer()
              Load form1
              form1.Show
              Unload Me
           End Sub