我在数据库中有4个查询,每次我重新运行查询(通过按钮)时刷新表单的内容,我有vba只是关闭并重新打开表单。这种方法以前是有效的,但是现在这个方法不起作用了,因为我决定将报表嵌入到查询表单中(在导航控件元素中)。我还没能找到"提神"的饮料。方法,该方法将在此设置中工作。我尝试了Requery方法,但它没有更新我的表单。以下是我的文件:
背景信息:
- 主表单= MainMenu
- 导航控件元素= NavigationSubform
- Form I put inside NavigationSubform = *equipment_at_location
- *equipment_at_location内的子表单(我想要"刷新") =rpt_equipment_at_location
当我点击我的"run query"按钮:
Forms!MainMenu!NavigationSubform.Form!rpt_equipment_at_location.Requery
我也试过这个,但它做同样的事情:
Me.rpt_equipment_at_location.Requery
rpt_equipment_at_location报告后点击我的"运行查询";按钮
相同的rpt_equipment_at_location报告作为子报告在我的*equipment_at_location表单点击我的"运行查询";按钮
我知道路径是正确的,因为这段代码导致表单"闪烁";(就像刷新了表单一样),但是表单没有使用查询的当前信息进行更新。如果打开rpt_equipment_at_location链接的父表单,那么每次运行查询时,所有信息都会准确地更新和更改,但是该表单没有以这种方式表示为导航控件表单中的子表单。它只是显示一个记录,当我请求,一个形式要么不改变或变为空白。我的链接字段填充,所以不应该rpt_equipment_at_location子表单更新时,它链接到更新?
如果我需要澄清什么,请告诉我。我将非常感谢任何帮助!!
我搞定了!我不完全确定发生了什么,但我会试着解释一下,以防其他人也遇到这种情况:
需要注意的是,我的报告是基于查询的,所以当我将其放入表单(拖放)时,它应该提示我输入在该查询的SQL代码(引用各种表单中的其他数据元素)中调用的某些值,但由于我在设计视图中,因此没有提示。当我切换到布局视图并放置子报表时,它提示我输入这些值,这些值初始化了表单中最初显示的记录。在表单中预初始化所有记录后,Requery代码工作了。
对不起,如果这没有意义。我不知道为什么Access会这样,或者为什么它不能通过设计视图工作,但这对我来说是有效的。