当我使用下面的代码时,我有时会收到错误3021.这只会在记录集中有一条记录时发生。你能告诉我为什么,以及如何解决它?看来我已经尝试了一切!
由于
Private Sub cmdDelSelectedAction_Click()
response = MsgBox("Are you sure?", vbYesNo, "Confirmation required")
If response = vbNo Then Exit Sub
If Me.[Arrangement-Actions subform].Form.Recordset.EOF Then
Me.[Arrangement-Actions subform].Form.Recordset.MovePrevious
End If
If Me.[Arrangement-Actions subform].Form.Recordset.BOF Then
Me.[Arrangement-Actions subform].Form.Recordset.MoveNext
End If
Me.[Arrangement-Actions subform].Form.Recordset.Delete
Me.[Arrangement-Actions subform].Form.Recordset.MoveNext
End Sub
答案 0 :(得分:0)
已经有一段时间了,但我认为代码看起来像这样:
Private Sub cmdDelSelectedAction_Click()
Dim rec As Recordset = Me.[Arrangement-Actions subform].Form.Recordset
If Not rec.BOF Or Not rec.EOF Then
If MsgBox("Are you sure?", vbYesNo, "Confirm") = vbYes Then
rec.Delete
End If
End If
End Sub
我觉得有点奇怪的是,在您的代码中,您会要求确认删除记录,然后在删除记录之前,您将在记录集上执行MoveNext或MovePrevious。我会远离这样做,因为最终用户可能正在删除与他们预期不同的记录。