我自己一直在努力解决这个问题,然后在一些帮助下,然后进行搜索;但我没有运气。所以我决定问
我在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”
答案 0 :(得分:0)
这是俄语的速查表-http://www.sql.ru/faq/faq_topic.aspx?fid=156我想翻译一些要点:
Forms![Form1].Controls![Field1].Value
提到,“”。和“!”一一切换。
可以这样做:
Forms![Form1]![Field1]
但是不应有相同名称的不同集合的对象。
使用控件的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
)
建议使用以下语法:
Me.Controls![Field1].Value
NB
:包含表单的控件名称可以与表单名称不同。可以通过研究控件的.Name
属性来进行检查。
因此,按照这些说明,您的代码应遵循(请参阅第二条建议):
Forms![Form1].Controls![Form2].Form.Controls![Field1].Value
在这种情况下
Forms![frmNavigation].Controls![NavigationSubform].Form.Controls![frmOrderList].Form.Requery
这仅在控件的名称与Form的名称相同的情况下才有效,否则,您应该更正控件名称的方括号中的名称。