使访问子表单仅通过单击按钮填充

Make access subform only populate with button click

我很生气,因为我以前做过但不记得了。我有一个 Access 数据库,其中包含指向 SQL 服务器数据库的链接表和一个具有由查询填充的子表单的表单。查询与子表单一样工作,并且在调用主表单时,子表单确实填充了正确的数据。但是我想停止子表单在加载时填充并且只通过单击按钮填充。

我已经为按钮的“单击”事件提供了一个嵌入式宏来重新查询子表单,它似乎确实刷新了子表单,但是如何停止在主表单加载时填充子表单并且仅填充按钮点击

您有多种选择。

一种命令方式是去掉子窗体控件的“源对象”设置。由于控件(子窗体控件)没有指向子窗体的“指针”,子窗体将不会加载或显示。

这样设置的代码(在你的按钮后面是这样的):

   Me.MySubFormControl.SourceObject = "tblMain2"

所以,只需将源对象设置为您想要的子表单即可display/load。

在编辑表单时要小心当你清空(删除)子表单控件的源对象设置时,在编辑过程中经常弄乱也会破坏 link 主字段和子字段设置。它们通常会粘住,但也可能会消失。

下一个可能吗?

代替设置源对象,修改子窗体,并删除其数据源。

现在在该按钮后面的代码中,您可以:

me.MySubFormControl.Form.Source = "SELECT * from child table"

再一次,当您执行上述操作时,link master/child 设置通常会消失。在某些情况下,您可以这样去:

me.MySubFormControl.Form.Source = "SELECT * from childTable where parent_id = " & me!id

当然,现在您将 parent_id 替换为用于与父表单关联的列名称。

我认为源对象是一个更好的选择,因为这样在主窗体加载时甚至不会渲染甚至加载子窗体。

唯一的问题是 OFTEN 访问将尝试 set/change link master/child 设置,因此您可以考虑设置 link master 和 link 代码中的子字段设置(就在源对象代码行之前)。