Forms 查询子窗体,通过导航窗体使用时不工作

Forms 查询子窗体,通过导航窗体使用时不工作,forms,ms-access-2013,subforms,Forms,Ms Access 2013,Subforms,我会尽可能清楚地告诉你: 我的数据库有两个表: Clients Contacts 他们有一种关系:对于每个客户(据你所知,这是一家公司),可以有任意数量的相关联系人 该数据库有三种相关形式: SearchFrm NavigationFrm ContactsSubFrm SearchFrm是一种从Clients表中读取数据的表单,它有一个组合框,根据所选记录(名称)在各自的文本框中显示所有其他字段 在SearchFrm中,ContactsSubFrm显示为数据表子表单,该表单显示与表单中所选记

我会尽可能清楚地告诉你:

我的数据库有两个表:

Clients
Contacts
他们有一种关系:对于每个客户(据你所知,这是一家公司),可以有任意数量的相关联系人

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

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

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

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

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

我很确定这是因为
SearchFrm
表单本身是关闭的,在浏览导航表单时遇到问题,但我想不出解决方案


非常感谢。

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

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

[forms]![frmNavigationForm]![NavigationSubform].[Form]![ID]

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

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

最好的方法是:

  • 打开您的导航表单
  • 打开任何其他表单
  • 从其他窗体访问表达式生成器
  • 在导航表单中查找需要引用的字段。我的看起来像这样:

    形式![导航表单]![导航子窗体]。窗体![字段]

  • 复制并粘贴到查询中

  • 不幸的是,我试过了,但我得到了同样的结果(现在在
    [Forms]![NavigationFrm]![SearchFrm]![ID]上请求输入)
    我的项目现在也有类似的问题……如果我能解决它,我会在这里分享,也许它也会对你有用。我的DLookup也有类似的问题。在导航表单中它不起作用。所以我改为:
    [Forms]![SearchFrm]![ID]
    我刚刚编写了
    [ID]
    和Access都做对了。但是,在你的例子中,你是从查询本身建立参数的,所以我不知道它是否能工作。嗯……有趣的想法。不幸的是,Access在“SearchFrm”中做对了,当我转到导航表单时,它没有提示我输入,问题是数据表没有upda在导航表单中,它保持为空。