如何在Microsoft Access中刷新子表单的内容?



我在数据库中有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会这样,或者为什么它不能通过设计视图工作,但这对我来说是有效的。

最新更新