查询子表单,通过导航表单使用时无效

时间:2014-03-31 15:56:18

标签: forms ms-access-2013 subforms

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

我的数据库有两个表:

Clients
Contacts

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

数据库有三种相关形式:

SearchFrm
NavigationFrm
ContactsSubFrm

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

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

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

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

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

非常感谢。

3 个答案:

答案 0 :(得分:1)

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

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

最好的方法是:

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

    表格![NavigationForm]![NavigationSubform] .Form![Field]

  5. 复制并粘贴到您的查询中

答案 1 :(得分:0)

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

答案 2 :(得分:-3)

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

来解决了这个问题
[forms]![frmNavigationForm]![NavigationSubform].[Form]![ID]