这样试一把:
1.确保表有主键(没有就加一个field采用自动编号)
2.在Adodc1.recordset.delete之前加一句 : DoEvents(因为有时候连续删除两个记录就有这个问题).

解决方案 »

  1.   

    Private Sub mnuDelete_Click()
        Dim Ret As Integer
        Ret = MsgBox("您确定要删除第" & DataGrid1.Columns(0).Text & "期的记录?", vbOKCancel, "提示信息")
        If Ret = vbOK Then
            Adodc1.Recordset.Delete
            On Error GoTo deleteFailure
            adodc1.recerdset.movepervious
            exit sub
        End If
    deleteFailure:
        MsgBox Err.Number & vbCrLf & Err.Description
    End Sub
    一定是可以的,你再试试了!!
      

  2.   

    Private Sub mnuDelete_Click()
        Dim Ret As Integer
        Ret = MsgBox("您确定要删除第" & DataGrid1.Columns(0).Text & "期的记录?", vbOKCancel, "提示信息")
        If Ret = vbOK Then
            Adodc1.Recordset.Delete
            On Error GoTo deleteFailure
            
            adodc1.recerdset.movepervious
            End If     (再这里错)
            exit sub
        
    deleteFailure:
        MsgBox Err.Number & vbCrLf & Err.Description
    End Sub
    应该试这样的,我先前看错了
      

  3.   

    另:1。表是有主键的
        2。加DOEvents 依然没用
    过路人说的注册问题我不明白,请详细说明!
    谢谢各位!
      

  4.   

    删除后,要修改一下GRID控件的行数,也许序号也要改。错误提示你控件的当前你删除的行没有数据了(当然,你刚把它删了!),所以你当然也要调整控件比如Grid的显示了。
      

  5.   

    to estone(lazybug):
    不明白你的话,可以说详细点吗?
      

  6.   

    简单说就是:
        如果你用datagrid控件绑定adodc1控件来显示记录的话,当你删掉了一条记录,其实这条记录并没有真正删除,只是作上了删除标记,但datagrid的当前行还是指向该记录,当然就出现出错提示了,你要作的就是刷新datagrid的显示,让它始终显示有效记录即可。
      

  7.   

    我觉得用ADODB.Connection+ListView控件比较灵活!
      

  8.   

    我觉得用ADODB.Connection+ListView控件比较灵活!