1

在 ms 访问中,我有一个表单,它也有一个子表单。当子表/子表单具有一对多关系中的关联记录时,我想以编程方式将主表单中的 RecordsetType 更改为快照。我写了一些 vba 代码来做到这一点,但我遇到了一些非常奇怪的行为。

然后我发现这是因为当我更改 RecordsetType 时,表单会刷新并导航回第一条记录。然后,这会导致 On Current 事件和相关代码在子表单和主表单中触发两次。我正在考虑使用 DoCmd.SearchForRecord 导航回原始记录,但很快意识到它不起作用,因为 DoCmd.SearchForRecord 中的 WHERE 条件在事件第二次触发时被覆盖。无论如何,这一切都显得如此低效。

还有其他方法可以做我想做的事情吗?我真的不想将表单中的控件设置为“禁用”。

4

1 回答 1

1

MS Access 有一系列适合的表单属性:AllowEdits、AllowDeletions 和 AllowAdditions。这些可以单独设置或一起设置。在这种情况下,您似乎需要将 AllowAddition 设置为 Yes 并将 AllowEdits 设置为 No。

表单属性

于 2013-02-19T21:01:10.750 回答