更新时间:2022-10-15 16:28:48
这已经有一段时间,但我认为,code是这样的:
私人小组cmdDelSelectedAction_Click()
昏暗REC作为记录=我。[排列,操作子窗体] .Form.Recordset
如果没有rec.BOF或不rec.EOF然后
如果MSGBOX(你确定吗?,vbYesNo,确认)= vbYes然后
rec.Delete
结束如果
结束如果
结束小组
我觉得有点怪,在你的code你会问,以确认要删除的记录,然后删除记录之前,您将执行MoveNext的或在记录一个移动previous。我会远离这样做,因为最终用户可能会被删除不同的记录比他们期待。
When I use the code below, I sometimes receive a Error 3021. This only happens when I have one record in the recordset. Can you please tell me why, and how to fix it? It seems I've tried everything!
Thanks
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
It's been a while, but I think the code would look like this:
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
I find it a little odd that in your code you would ask to confirm to delete the record, and then before deleting the record, you would perform a MoveNext or a MovePrevious on the recordset. I would stay away from doing that since the end user might be deleting a different record than they were expecting.