我有以下代码,用于在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。对不起,我不能发表我的表格,因为它包含很多机密数据。
答案 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