我自己在解决这个问题,然后在一些帮助下,然后搜索它;但我没有任何运气。所以我决定问
我在访问 2007 中有两个表单。 1. 导航 2. 订单列表 表单 frmOrderList 嵌入在表单 frmNavigation 中。表单 frmOrderList 是基于 queris 构建的,其标准位于表单 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">
这是俄语的好备忘单 - 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
- 是指向子窗体的链接。Form
属性寻址对于 MS Access 97 是必需的,对于下一版本是可选的。
如上所述,构造了对 3rd 和更多级别子窗体的寻址:
.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 的名称相同,这才有效,否则您应该更正控件名称的名称,这些名称位于方括号中。