Ms access 是否从窗体内的活动表中删除数据行?
我正在尝试制作一个Access GUI,它可以让用户在提交数据之前自由编辑数据 但是,如果不循环到运行时错误3167“RecordisDeleted”,就不能自由删除数据。显然,这与我告诉它从总是通过表单显示的活动表中删除数据有关 有人能告诉我解决这个问题的方法吗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
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
是只读的,因此这不是一个选项。但我认为通过执行一条语句删除所有符合条件的行更简单。。。代码更少,并且应该比基于单个集合的操作快得多。