当我删除最后一行时 会弹出错误: 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
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
If Adodcfault.Recordset.EOF = True Then
Adodcfault.Recordset.MovePrevious
Else
Adodcfault.Recordset.MoveNext
End If 感觉出问题的就是以上这段。你把这段删除或者Re起来看看会不会出错?!
这个错误没了 不过又产生了其他的错误 “无法为更新定位行,一些值已经在最后一次读取后发生更改”
Adodcfault.Recordset.MovePrevious
Else
Adodcfault.Recordset.MoveNext
End If
有问题,不管数据库是否有数据都会继续向下运行,当数据库没有数据时Del就出错了,最好改为If Not Rs.Eof Then,确保只有在数据库有数据的时候才能执行删除操作
Adodcfault.Recordset.MovePrevious
Else
Adodcfault.Recordset.MoveNext
End If
我把这个删除了 不过又弹出新问题了:无法为更新定位行,一些值已经在最后一次读取后发生更改
Adodcfault.Recordset.MovePrevious
Else
Adodcfault.Recordset.MoveNext
End If
删除了 不过又有新问题:无法为更新定位行,一些值已经在最后一次读取后发生更改