提示用户进行选择的VBA代码
我有一些VBA代码,询问用户在MS Access中关闭表单之前是否希望保存记录。这是代码的样子:提示用户进行选择的VBA代码,vba,ms-access,beforeupdate,Vba,Ms Access,Beforeupdate,我有一些VBA代码,询问用户在MS Access中关闭表单之前是否希望保存记录。这是代码的样子: Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctl As Control On Error GoTo Err_BeforeUpdate If Me.Dirty Then If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
On Error GoTo Err_BeforeUpdate
If Me.Dirty Then
If MsgBox("Do you want to save?", vbYesNo + vbQuestion, _
"Save Record") = vbNo Then
Me.Undo
End If
End If
Exit_BeforeUpdate:
Exit Sub
Err_BeforeUpdate:
MsgBox Err.Number & " " & Err.Description
Resume Exit_BeforeUpdate
End Sub
我还想在上面后面添加另一个消息框,询问用户是否希望“将记录复制到分析和支持表?”。如果是,那么我希望代码运行名为“Insert\u query”的已保存查询。如果没有,则转到新记录
在编写VBA时,我几乎没有经验,因此需要帮助
有人能帮忙吗?如果您希望只有在他们同意保存记录时才会显示消息,那么
If MsgBox("Do you want to save?", vbYesNo + vbQuestion, "Save Record") = vbNo Then
Me.Undo
Else
If MsgBox("Copy the record to the Analysis & Support Table?", vbYesNo + vbQuestion, "Copy Record") = vbYes Then
CurrentDb.Execute("Insert_Query")
Else
'go to new record
end if
End If
如果您希望无论选择第一个消息框都显示消息,则
If MsgBox("Do you want to save?", vbYesNo + vbQuestion, "Save Record") = vbNo Then
Me.Undo
End If
If MsgBox("Copy the record to the Analysis & Support Table?", vbYesNo + vbQuestion, "Copy Record") = vbYes Then
CurrentDb.Execute("Insert_Query")
Else
'go to new record
end if
谢谢你拆散了2。实际上,选择第一个选项对我来说更有意义。我已经运行了…一切似乎都正常。但它似乎在问我是否想存两次钱?你知道怎么解决吗?带有
的MsgBox
“你想保存吗?”
显示两次?或者两个不同的MsgBox
,因为后者是专用的。带有的MsgBox
“是否要保存?”
弹出,然后我点击save,然后再次弹出…要测试,请放置一些调试。打印语句或使用调试器单步执行,查看它在什么时候重复。i、 如果整个函数是重复的,或者只是一个特定的部分。如果您正在执行我的操作。撤消,我相信这将重新启动Form_BeforeUpdate函数,因为您正在更新表单数据。可能需要将其放入另一个函数中。