如何从导航表单中重新查询表单?

Posted

技术标签:

【中文标题】如何从导航表单中重新查询表单?【英文标题】:How to requery a form from navigation form? 【发布时间】:2019-06-14 07:58:04 【问题描述】:

我自己一直在努力解决这个问题,然后在一些帮助下,然后搜索它;但我没有任何运气。所以我决定问

我在 access 2007 中有两个表格。 1.frm导航 2.frmOrderList frmOrderList 表单嵌入在 frmNavigation 表单中。表单 frmOrderList 是基于具有位于表单 frmOrderList 上的条件的查询构建的。 当条件改变时,宏(更新后)开始运行并尝试刷新 frmOrderList。 我尝试了多个代码,但它不适合我。

Forms![frmNavigation]![NavigationSubform].Form![frmOrderList].Requery
Forms![frmNavigation].Form![frmOrderList].Requery
Forms![frmNavigation]![frmOrderList].Form.Requery
Forms![frmOrderList].Requery ' Works fine for the single form

还是同样的错误 Microsoft 访问找不到您的表达式中引用的字段“frmOredrList”

【问题讨论】:

我认为您缺少代码的 SubForm 部分。试试这个:Forms![frmNavigation].NavigationSubForm.Form![frmOrderList].Requery 对于子表单,可以定位为Me.NavigationSubform.Form.Requery 请记住,在这种情况下,NavigationSubform 是嵌入对象的名称。 frmOredrList - 是错字吗? 【参考方案1】:

这是很好的俄语备忘单-http://www.sql.ru/faq/faq_topic.aspx?fid=156我想翻译一些要点:

    基本语法是这样的:

Forms![Form1].Controls![Field1].Value

提到,那个“。”和 ”!”一个接一个,切换。

可以这样做:

Forms![Form1]![Field1]

但是不同集合的对象不应该同名。

    寻址子表单

子表单或子报表属性的正确链接需要解决完整的表单标识符,使用控件的表单属性:

Forms![Form1].Controls![Form2].Form.Controls![Field1].Value

在这种情况下:

Forms![Form1].Controls![Form2] 是一个指向控件的链接,其中显示了子表单。 Forms![Form1].Controls![Form2].Form - 是子表单的链接。对于 MS Access 97,寻址 Form 属性是必需的,对于下一个版本是可选的。

如前所述,构造了寻址到第 3 级和更高级别的子表单:

.Controls![Form2].Form(或.Controls("Form2").Form

    用于在当前上下文中寻址对象

建议使用以下语法:

Me.Controls![Field1].Value

NB:控件名称,包含表单的名称可以与表单名称不同。可以通过研究控件的.Name属性来检查。


因此,使用这些说明,您的代码应如下所示(参见第二条建议):

Forms![Form1].Controls![Form2].Form.Controls![Field1].Value

在这种情况下

Forms![frmNavigation].Controls![NavigationSubform].Form.Controls![frmOrderList].Form.Requery

只有当您的控件的名称与表单的名称相同时,这才有效,否则您应该更正方括号中的控件名称。

【讨论】:

以上是关于如何从导航表单中重新查询表单?的主要内容,如果未能解决你的问题,请参考以下文章

无法从表单/子表单重新查询

如何重新查询其他用户打开的表单

组合框更改后子表单不重新查询

#姓名?在 Access 2010 中重新查询后的表单上

重置只是清空表单内容吗?涉及重新查找吗

重新查询或刷新无法更新打开表单上的子表单