VB中怎么使对数据库的更新操作立刻在DataGrid中同步显示出来?

来源:百度知道 编辑:UC知道 时间:2024/05/14 19:53:57
在VB中,把DataGrid绑定到Access数据库recordset,如果在使用其它RS更新数据库之后,立刻刷新DataGrid,并不能立刻看到更新后的结果。而是要等几秒钟,这是什么原因?要怎么解决?
如DataGrid1已绑定到记录集rec1,显示表Table1中全部数据。如果使用rec1.field(0).value=newvalue来更新表,结果是能实时显示在DataGrid1中的。但如果我必须使用其它数据集,如Rec2,使用Rec2打开表Table1,进行更新,update后,立刻刷新DataGrid1,结果并不能显示出来,大概要过一秒后再次刷新才能显示。无论是使用DataGrid1.refresh还是重新绑定到Rec1中甚至重新打开Rec1,都存在这个延迟。但如果Rec2进行的是Delete或者Addnew操作,却都能实时显示出来。这到底是怎么一回事,怎么解决这个延时?

可以用比如下面的代码(一些地方得根据你自己文件名、数据库名改一下):
Function datashow()
Dim rs1 As New ADODB.Recordset
rs1.CursorLocation = adUseClient
rs1.Open "select * from zgdagl", conn, adOpenKeyset, adLockReadOnly
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Function
然后在你的addnew按钮的click下面离endsub最近的地方(即除了endsub以外就是本过程的最后一行)引用为个函数:datashow