如何从导航表单中重新查询表单?
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
只有当您的控件的名称与表单的名称相同时,这才有效,否则您应该更正方括号中的控件名称。
【讨论】:
以上是关于如何从导航表单中重新查询表单?的主要内容,如果未能解决你的问题,请参考以下文章