运行时错误3021-没有当前记录的删除按钮
问题描述:
我有以下代码用于在Microsoft Access中编写的可视基础中的删除按钮。运行时错误3021-没有当前记录的删除按钮
Private Sub Delete_Click()
If Not (Me.ComputerSubform.Form.Recordset.EOF And Me.ComputerSubform.Form.Recordset.BOF) Then
If MsgBox("Are you sure to delete?", vbYesNo) = vbYes Then
CurrentDb.Execute "DELETE FROM Computer " & _
" WHERE PCSN=" & Me.ComputerSubform.Form.Recordset.Fields("PCSN")
Me.ComputerSubform.Form.Requery
End If
End If
End Sub
第一次它的话很好。但是当我尝试删除另一条记录时,我将遇到“运行时错误3021-没有当前记录”。我无法理解,因为代码对我来说罚款并且有数据可用。我将不胜感激任何帮助。谢谢!
P.S.对不起,我不能张贴我的表格,因为它包含了大量的机密数据。取而代之的
Me.ComputerSubform.Form.Requery
答
您应该使用Me.ComputerSubform.Form.Recordset.Requery
这将您的最新更新基础记录删除
答
试试这个:
dim rs as dao.recordset
set rs = currentdb.openrecordset("computers", _
dbopendynaset)
rs.findfirst "[pcsn] = " & _
me.computersubform.form!pcsn
'If pcsn is text instead of a number you need chr(34)
' on either side
if rs.nomatch = false then
rs.edit
rs.delete
rs.update
rs.close
me.refresh
end if
+0
对不起第一篇文章....从我的手机。必须弄清格式。 –
删除记录后在MS-Access记录器中dset,我相信你需要移动到下一行才能成功访问它。我已经解决了这个问题已经有一段时间了,所以可能需要一些试验和错误。 –
@ron tornambe谢谢!你正确的搬到下一行不会遇到这个问题。有没有一种编码方法来解决它? – user292965
尝试@dbmitch的答案,但我认为这可能会将您带到rs的顶部。你也可以尝试Me.ComputerSubform.Form.MoveNext –