1

我会尽可能清楚地说明这一点:

我的数据库有两个表:

Clients
Contacts

他们有关系:对于每个客户(根据您的理解,这是一家公司),可以有任意数量的相关联系人。

该数据库具有三种相关形式:

SearchFrm
NavigationFrm
ContactsSubFrm

SearchFrm是一个从表格中读取的表单Clients,并且有一个组合框,根据选择的记录(名称),在它们各自的文本框中显示它的所有其他字段。

在内部SearchFrmContactsSubFrm显示为数据表子表单,显示与表单中所选记录相关的所有联系人,(使用查询Contacts.[Workplace ID])=[Forms]![SearchFrm]![ID]

NavigationFrm用作表单之间的导航方式。目前,它仅适用于SearchFrm,但还会有更多。

现在,问题是:运行的查询ContactsSubFrm在内部不起作用,运行时,每次它应该运行NavigationFrm时,我都会得到一个输入窗口。[Forms]![SearchFrm]![ID]这只发生在导航内部。

我很确定这是因为SearchFrm表单本身已关闭,并且在通过导航表单工作时出现问题,但我想不出解决方案。

非常感谢。

4

3 回答 3

1

我一直在寻找同一个问题的答案,所以我想我会把我的解决方案放在这里,以防其他人来寻找它......

如上所述,您必须在查询的导航表单中引用表单中的字段(而不仅仅是您最初创建的表单中的字段。)

最好的方法是:

  1. 打开您的导航表单。
  2. 打开任何其他表格。
  3. 从其他表单访问表达式生成器。
  4. 在导航表单中找到您需要引用的字段。我的看起来像这样:

    Forms![NavigationForm]![NavigationSubform].Form![Field]

  5. 复制并粘贴到您的查询中
于 2015-02-19T16:10:52.893 回答
0

由于您的表单移动了位置(现在在导航表单内),您可以尝试将查询从:修改[Forms]![SearchFrm]![ID]为:[Forms]![NavigationFrm]![SearchFrm]![ID]

于 2014-03-31T16:49:25.573 回答
-2

我通过将查询本身中的引用更改为

[forms]![frmNavigationForm]![NavigationSubform].[Form]![ID]
于 2014-07-24T13:28:38.827 回答