就是一个修改数据的按钮
Set conn = New ADODB.Connection
ConnectionString = "provider=Microsoft.Jet.oledb.4.0;" & "data source=db1.mdb;" & ";Persist Security Info=True"
conn.Open "provider=Microsoft.Jet.oledb.4.0;" & "data source=db1.mdb;" & ";Persist Security Info=True"
conn.Execute "update biao1 set near = " & Text1.Text & " where 编号=" & DataGrid1.Columns(0) & ""
程序运行OK然后我要对他更新吧
 Adodc1.Refresh 
不行  再加入
   DataGrid1.Refresh
还是不行  数据已经修改了 但是DATA里的显示还是不给我更新出来
然后我索性这里不更新了 
把Adodc1.Refresh 
单独放一个按钮4 然后点击修改后  我点击按钮4  DATA更新了于是我就想我在修改按钮下调用按钮4
嘿嘿  还是不能显示更新  
v
你们说奇怪吧 反正我把修改和 Adodc1.Refresh 放一起他就不能对查询更新 
  然后我再次按下修改按钮   他到是更新了  奇怪奇怪  高手来解决下 
  

解决方案 »

  1.   

    你把DataGrid1.Refresh 放到什么地方了
      

  2.   


    原因:
    SQL 命令是由 VB 发送给数据库引擎去执行的。发出之后,VB 的任务就完成了,它会继续执行后续的语句。此时,数据库的更新可能还没有完成,例如它需要进行磁盘操作,比较慢。你另设一个按钮手动点击,等于给了一个延迟。用程序直接调用又把延时去掉了。解决方法:1.
    如果你的 DataGrid1 是绑定到 Adodc1 的,试试用
    Adodc1.Recordset.Requry 
    替代
    Adodc1.Refresh2
    强制要求返回参数
    Dim n As Long
    conn.Execute "update biao1 set near = " & Text1.Text & " where 编号=" & DataGrid1.Columns(0) & "", n
    Adodc1.Refresh 
    因为要求返回 RecordsAffected 参数,此 Execute 语句会等到数据库更新完成才执行完毕。3
    使用待事件的连接对象,让 ExecuteComplete 事件自动触发 Adodc 更新Dim WithEvents conn As ADODB.Connection
     
    Private Sub conn_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
        Adodc1.Refresh
    End Sub
      

  3.   

    LZ:你混用ADO数据对象和ADO数据控件(ADODC),使得代码让人摸不透.
    修改你的代码如下:
        
        Set conn = New ADODB.Connection
        Set rs = New ADODB.Recordset
        Dim sql
        'coon.ConnectionString = "provider=Microsoft.Jet.oledb.4.0;" & "data source=db1.mdb;" & ";Persist Security Info=True" '本句有错用下句
        coon.ConnectionString = "provider=Microsoft.Jet.oledb.4.0;" & "data source=db1.mdb;" & "Persist Security Info=True"
        conn.Open
        sql = "update biao1 set near = " & Val(Text1.Text) & " where 编号=" & Val(DataGrid1.Columns(0)) & ""
        rs.CursorLocation = adUseClient
        rs.Open sql, cn, adOpenDynamic, adLockOptimistic
        Set DataGrid1.DataSource = rs