0

我有将 PK 传递给 Form B 的 Form A(使用 OpenForm)。Form B 的 OnLoad 事件使用该 PK 填充几个文本框。表单 B 上还有一个 ListBox,我想用一个 Access 查询填充它,该查询使用该 PK 值访问不同的表。

我从这个论坛了解到,我必须创建一个新的全局函数来传入查询的 Where/Criteria 中的变量。我已经完成了这项工作,并对函数中的值进行了硬编码,以确保我的概念正确并且能够使其工作。现在,当我替换函数中的硬编码值并尝试传入一个变量(原始 PK)时,catch-22 出现了。但是该函数只能通过查询中的 where 子句调用。如果我可以将 PK 的值传递给查询,我就不需要该函数。此时有没有办法使用查询,还是我必须将所有数据库访问权限放在 VBA 中?我对此有意义吗?希望我所做的不是一次性的。

我想到的一件事是创建一个全局变量,将其值设置为加载表单中的 PK,并且该函数应该可以访问它。关于那个或更好的方法的想法?谢谢!

4

1 回答 1

0

如果您想将第一个表单中的 PK 获取到在第二个表单上填充某些内容的查询中,那么您可以在填充第二个表单的查询中引用第一个表单上的控件。可以输入以下内容作为查询条件:

Forms!FormA!txtBoxPrimary

使用 VBA(和 Where 子句)提供了更多的控制和错误处理的可能性,但可以直接在 Access Query 中引用表单控件。

于 2013-07-01T00:11:52.263 回答