Access 中的 VBA:DoCmd.RunCommand acCmdSaveRecord 如何工作?

Gen*_*tor 4 ms-access vba

我用

DoCmd.RunCommand acCmdSaveRecord

保存,但我不确定这实际上是如何工作的。它会保存所有未保存的更改吗?或者无论是否更改它都会保存所有内容吗?还是只保存当前表单?其他形式的相关未保存更改又如何呢?或者它以其他方式发挥作用吗?这个功能有官方文档吗?

And*_*dre 6

它保存活动表单的当前记录。这与单击记录选择器相同。

如果当前记录当前未被编辑(不是“脏”),则不会发生任何事情。

如果您想要更好的控制,特别是在处理子表单时,我建议改用该Form.Dirty属性。这样您就可以明确地指定要保存的表单。

将当前记录保存在表单模块中(仅在需要时保存):

If Me.Dirty Then
    Me.Dirty = False
End If
Run Code Online (Sandbox Code Playgroud)

以任何形式保存记录

With Forms!myForm
    If .Dirty Then
        .Dirty = False
    End If
End With
Run Code Online (Sandbox Code Playgroud)

或者子表单

Forms!mainForm!SubFormControl.Form.Dirty = False
Run Code Online (Sandbox Code Playgroud)

在我看来,这更清晰、更好。我已经DoCmd.RunCommand acCmdSaveRecord完全停止使用了。