运行时错误3021-没有删除按钮的当前记录

时间:2016-07-30 17:42:11

标签: ms-access

我有以下代码,用于在Microsoft Access中以可视化基础编写的删除按钮。

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。对不起,我不能发表我的表格,因为它包含很多机密数据。

2 个答案:

答案 0 :(得分:1)

而不是

Me.ComputerSubform.Form.Requery

你应该使用
Me.ComputerSubform.Form.Recordset.Requery

这将使用您最新的删除

更新基础记录集

答案 1 :(得分:0)

试试这个:

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