If xhText.Text = "" Then Exit Sub
    OperateAccessDb "Select * From zfxhb Where xh_zxbzjl='" & xhText.Text & "'", 1
    If redset.RecordCount > 0 Then
        mdText.Text = redset.Fields("mdh_zxbzjl")
    Else
        Exit Sub
    End If
        OperateAccessDb "Insert into zxbzjl Select * From zfxhb Where xh_zxbzjl='" & xhText.Text & "'", 0
    If OperateDbNoError = 1 Then
        OperateAccessDb "Update zxbzjl Set sfsc_zxbzjl='0' Where xh_zxbzjl='" & xhText.Text & "'", 0
        OperateAccessDb "Update mdb Set hjxs_mdb=hjxs_mdb + 1 Where mdh_mdb='" & mdText.Text & "'", 0
        
        OperateAccessDb "Delete * From zfxhb Where xh_zxbzjl='" & xhText.Text & "'", 0
        
        xhzfCmd.Enabled = False
        xhhfCmd.Enabled = False
       
        Adodc1.Refresh
        Sleep 500        '多次试验必需要有延时500MS左右,然后再执行一次 ADODC1.Refresh DataGrid才更新
        Adodc1.Refresh我是将ADODC1与DataGrid绑定的。当ADODC1增加一条新记录时,DataGrid可以实时更新。但是当ADODC1删除一条记录时,DataGrid却不能实时更新了。必需ADODC1再执行一次刷新,而且中间还要有延时才能更新。用MSHFLexGrid控件也是一样。

解决方案 »

  1.   

    用存储过程更新吧,
    DataGrid定时刷新
      

  2.   

    我用的是ACCESS,而且记录数也不多的。
      

  3.   

    access 就这样,没得办法,大家都是延迟解决
      

  4.   

    就是延时问题,如果用DATAGRID的话在更新后,给个提示框,比如提示“更新成功”,然后再刷新DATAGRID就行了。要不就使用LISTVIEW,更新成功后,实时修改LISTVIEW上的相应行的数据,这样做的好处就是为了避免如果数据量很大的话,或者是超过DATAGRID一屏显示,那么一直刷新而引起用户反感。
      

  5.   

    好像是要执行一次ADODC1.Refresh先,但没必要等什么延迟吧
      

  6.   

    好像是要执行一次ADODC1.Refresh先,但没必要等什么延迟吧