我在DataGrid控件的属性中勾选了删除和更新,其它代码如下:Dim WithEvents adoPrimaryRS As Recordset  '模块变量
...
    Set DG数据表.DataSource = adoPrimaryRS    'DG数据表为DataGrid控件我在控件中选中了记录,按Delete键删除记录,控件中的记录是删除了,但是再搜索一遍的时候又出现了,文件中的记录根本就没有删除,怎么才能按Delete键时连文件中的记录也删除掉呢?

解决方案 »

  1.   

    删除后加上:
    adoPrimaryRS.Update
      

  2.   

    如果删除了多条:
    adoPrimaryRS.UpdateBatch
      

  3.   

    我应该加在哪啊,我不知道DataGrid控件是在哪里响应Delete事件的
      

  4.   

    我加在AfterDelete事件上:Private Sub DG数据表_AfterDelete()
    adoPrimaryRS.Update       '出错,提示“客户事件句柄调用了一个提供者中的非重入方法”
    End Sub
      

  5.   

    Private Sub DataGrid1_AfterDelete()
        adoPrimaryRS.UpdateBatch
    End Sub
      

  6.   

    不行啊,对adoPrimaryRS.的操作都出错,DG数据表.Refresh也不行~~
      

  7.   

    不理解你的为什么会那样子
    我自己试了,用Delete键删除后,再查询,得到的结果删除后的结果,代码如下:
    Private Sub Form_Load()
        Dim cn As New ADODB.Connection,rs As New ADODB.Recordset
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test1.mdb;Persist Security Info=False"
        cn.CursorLocation = adUseClient
        rs.Open "table1", cn, adOpenDynamic, adLockOptimistic, adCmdTable
        Set DataGrid1.DataSource=rs
        MsgBox rs.RecordCount '显示记录条数 ,结果为10**************************
        '....
    End Sub
    ========================================
    '按Delete键后,再点Command1查询记录条数Private Sub Command1_Click()
        Dim cn As New ADODB.Connection,rs As New ADODB.Recordset
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test1.mdb;Persist Security Info=False"
        cn.CursorLocation = adUseClient
        rs.Open "table1", cn, adOpenDynamic, adLockOptimistic, adCmdTable
        MsgBox rs.RecordCount '显示记录条数,结果为9*************************
        '....
    End Sub