重新查询或刷新无法更新打开表单上的子表单

Posted

技术标签:

【中文标题】重新查询或刷新无法更新打开表单上的子表单【英文标题】:Requery or refresh does not work to update subform on opened form 【发布时间】:2020-02-07 23:41:46 【问题描述】:

我在表单 (form1) 上有一个搜索按钮。搜索结果显示在第二个表单(“frmEquipSearchResults”)上的子表单(“SearchResult_sub”)中。我在子表单中显示结果的原因是 frmEquipSearchResults 具有对搜索结果执行操作的按钮。所以当我第一次打开表格时,一切都很好。但是如果我让结果表单保持打开状态,返回到 form1 并进行另一次搜索,结果表单上的结果不会更新

我尝试了搜索按钮中的那 3 行以尝试重新查询结果表单或它不起作用的子表单。

Forms("frmEquipSearchResults").Form.SearchResult_sub.Requery
Forms("frmEquipSearchResults").SearchResult_sub.Requery
Forms("frmEquipSearchResults").Requery

【问题讨论】:

将过滤器应用于结果表单的代码是什么?表单是否基于动态参数化查询?子窗体容器控件持有窗体的名称是什么? “不起作用”是什么意思 - 错误消息、错误结果、没有任何反应? SearchResult_sub 是包含子表单的控件的名称。我在另一篇文章中读到,必须重新查询控件的名称,这就是我想要做的。子表单本身是“frmEquipSearchResults” 等等,你说 SearchResult_sub 是 ON frmEquipSearchResults 那么它怎么可能是子表单本身呢?没有回答其他问题。 尝试:Me.SearchResult_sub.Form.frmEquipSearchResults.Form.Requery frmEquipSearchResults 应该是子表单容器名称 【参考方案1】:

每次我使用Requery 时,我都会使用不同的格式。按照https://docs.microsoft.com/en-us/office/vba/api/Access.Form.Requery请尝试:

Forms!<MainFormName>!<SubFormName>.Requery

或者在你的情况下

Forms!frmEquipSearchResults!SearchResult_sub.requery 

【讨论】:

以上是关于重新查询或刷新无法更新打开表单上的子表单的主要内容,如果未能解决你的问题,请参考以下文章

Ms Access:来自另一个子表单的子表单重新查询未更新

刷新/重新查询组合框问题

更新子表单上的记录

无法复制表单中的全部刷新快速访问工具栏按钮

在使用pjax重新加载gridview后,在gridview上的Yii2模态表单更新没有显示

动态数据更新,无需刷新或重新加载