Ms access 是否从窗体内的活动表中删除数据行?

Ms access 是否从窗体内的活动表中删除数据行?,ms-access,vba,Ms Access,Vba,我正在尝试制作一个Access GUI,它可以让用户在提交数据之前自由编辑数据 但是,如果不循环到运行时错误3167“RecordisDeleted”,就不能自由删除数据。显然,这与我告诉它从总是通过表单显示的活动表中删除数据有关 有人能告诉我解决这个问题的方法吗 Private Sub Cmd_delete_batch_Click() Dim RS As Recordset Dim ls_Batch_type As String Dim ls_batch_no As String If Ms

我正在尝试制作一个Access GUI,它可以让用户在提交数据之前自由编辑数据

但是,如果不循环到运行时错误3167“RecordisDeleted”,就不能自由删除数据。显然,这与我告诉它从总是通过表单显示的活动表中删除数据有关

有人能告诉我解决这个问题的方法吗

Private Sub Cmd_delete_batch_Click()
Dim RS As Recordset
Dim ls_Batch_type As String
Dim ls_batch_no As String

If MsgBox("This action will delete all selected Mail Merge Items. Are you Sure?", vbYesNo, "Mail Merge Delete Warning") = vbNo Then
   Exit Sub
End If

    Set RS = FRM_Batch.Form.RecordsetClone
    RS.MoveFirst
    For i = 1 To RS.RecordCount
        If RS.Fields("SELECT_FLAG") = True Then
            CurrentDb.Execute "DELETE * FROM tblFinalMailMerge WHERE SELECT_FLAG = True"

        End If
    RS.MoveNext
Next i

FRM_Batch.Form.Requery

在我看来,您似乎想从用户已将
选择标志设置为True的
tblFinalMailMerge
中删除所有记录。因此,我认为没有必要为此使用记录集。只需执行
DELETE
语句

如果MsgBox(“此操作将删除所有选定的邮件合并项目”。&_
“你确定吗?”,vbYesNo_
“邮件合并删除警告”)=vbYes然后
执行“从tblFinalMailMerge删除”&_
“其中SELECT_FLAG=True”,DBFailOneError
如果结束

那么您的问题是什么?抱歉-编辑以进一步说明。从活动表中删除记录时会不断循环。我是否有一个坏循环?或者是从活动表中删除时出现的问题?Derp Derp-看起来解决了这个问题。谢谢我想知道为什么通过记录集执行此操作是不可接受的……在不同的情况下,您可以循环通过记录集,并使用
recordset.delete
方法有条件地删除当前记录集行。但是,
RecordsetClone
是只读的,因此这不是一个选项。但我认为通过执行一条语句删除所有符合条件的行更简单。。。代码更少,并且应该比基于单个集合的操作快得多。