将窗体链接到 Access 中的子窗体

Linking a form to a subform in Access

我正在 Access 中创建一个 linked 子表单,其中表单和子表单来自同一个 SQL table。来源 table 看起来像这样:

Company   Product
-----------------
CompanyA  Product1
CompanyA  Product2
CompanyB  Product1
CompanyB  Product2

目标是在表单的列表框中显示最高 "level" 的数据(CompanyA、CompanyB 等),并在子窗体。我尝试在 Company 上 link 他们并收到以下错误。

You are trying to link fields with incompatible data types.

表单和子表单 link 相同 table 所以我不明白为什么它们会不兼容。真正令人困惑的是它是如何只出现在这个 table 上的。我使用与问题 table 具有相同数据类型的测试 table 创建了一个新表单,并且它有效。我将 "company" 列表复制到一个新的 table 中,它给了我同样的错误。

是 table 本身的问题吗? Access 是否需要行不同?

没有足够的细节来回答

这是一个替代解决方案:

不要使用 Access parent/child link 功能,而是使用 "at hand"。

首先删除 form/subform

上的 Parent/Child link

然后使用此 VBA 代码在列表框中添加点击事件:

Form_subformname.recordsource = "SELECT Product FROM tablename WHERE COmpany = '" &  listboxname.value & "'"

我从头开始重新启动表单,它起作用了。无需更改 table 或列数据类型。

必须在 Access 中定义的主键上链接窗体和子窗体。链接到任何其他列都会给您带来 incompatible data type 错误。