当我删除最后一行时  会弹出错误: bof或eof有一个是真,当前记录被删除,所需操作需要一个当前记录
Private Sub CmdDelete_Click()
  Dim sel As String
    On Error GoTo DelErr
    If Adodcfault.Recordset.RecordCount <= 0 Then
       X = MsgBox("数据库中已经没有故障记录!", vbInformation + vbOKOnly, "数据库信息")
    Else
       sel = MsgBox("确定要删除这个记录吗?", vbQuestion + vbOKCancel, "确定删除")
         If sel = 1 Then
                          If Adodcfault.Recordset.EOF = True Then
                Adodcfault.Recordset.MovePrevious
             Else
                Adodcfault.Recordset.MoveNext
             End If
             MsgBox (Adodcfault.Recordset.AbsolutePosition)运行的时候,当删除最后一行  显示的是-3,然后就弹错了
             Adodcfault.Recordset.Delete
             Adodcfault.Recordset.Update
           
         End If
       End If
    Adodcfault.Refresh
    Exit Sub
DelErr:
   'Rollback
   MsgBox Err.Description
   
End Sub

解决方案 »

  1.   


                 If Adodcfault.Recordset.EOF = True Then 
                    Adodcfault.Recordset.MovePrevious 
                 Else 
                    Adodcfault.Recordset.MoveNext 
                 End If 感觉出问题的就是以上这段。你把这段删除或者Re起来看看会不会出错?!
      

  2.   

    当我删除最后一行时  会弹出错误: bof或eof有一个是真,当前记录被删除,所需操作需要一个当前记录 
    这个错误没了    不过又产生了其他的错误  “无法为更新定位行,一些值已经在最后一次读取后发生更改”
      

  3.   

    If Adodcfault.Recordset.EOF = True Then 
        Adodcfault.Recordset.MovePrevious 
    Else 
        Adodcfault.Recordset.MoveNext 
    End If 
    有问题,不管数据库是否有数据都会继续向下运行,当数据库没有数据时Del就出错了,最好改为If Not Rs.Eof Then,确保只有在数据库有数据的时候才能执行删除操作
      

  4.   

    If Adodcfault.Recordset.EOF = True Then  
        Adodcfault.Recordset.MovePrevious  
    Else  
        Adodcfault.Recordset.MoveNext  
    End If  
    我把这个删除了   不过又弹出新问题了:无法为更新定位行,一些值已经在最后一次读取后发生更改
      

  5.   

    If Adodcfault.Recordset.EOF = True Then  
        Adodcfault.Recordset.MovePrevious  
    Else  
        Adodcfault.Recordset.MoveNext  
    End If  
    删除了  不过又有新问题:无法为更新定位行,一些值已经在最后一次读取后发生更改