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

时间:2019-06-14 07:58:04

标签: access-vba

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

我在Access 2007中有两种形式。 1. frmNavigation 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 Access找不到表达式中引用的字段“ frmOredrList”

1 个答案:

答案 0 :(得分:0)

这是俄语的速查表-http://www.sql.ru/faq/faq_topic.aspx?fid=156我想翻译一些要点:

  1. 基本语法是这样的:

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

提到,“”。和“!”一一切换。

可以这样做:

Forms![Form1]![Field1]

但是不应有相同名称的不同集合的对象。

  1. 寻址子表单

使用控件的Form属性,正确链接到子表单或子报表的属性需要解决完整的表单身份问题

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

在这种情况下:

  • Forms![Form1].Controls![Form2]是指向控件的链接,该控件显示子窗体。
  • Forms![Form1].Controls![Form2].Form-是子窗体的链接。要访问Form属性,对于MS Access 97是必需的,而对于下一版本,则是可选的。

如前所述,构造了第三级和更高级别的子表单:

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

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

建议使用以下语法:

Me.Controls![Field1].Value

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


因此,按照这些说明,您的代码应遵循(请参阅第二条建议):

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

在这种情况下

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

这仅在控件的名称与Form的名称相同的情况下才有效,否则,您应该更正控件名称的方括号中的名称。