我有一个包含两个子表单(1和2)的表单。子表单1连续存储数据以用于帐户细分。使用弹出子窗体(子窗体2),用户输入数据以更改或更新存储在子窗体1上的帐户明细。在提交时,信息存储在链接到子窗体1的子表中,但数据不刷新并在子窗体1的新记录中添加新信息,除非我手动单击主选项卡中的全部刷新按钮。
到目前为止,我已经在子窗体2的form_afterupdate上尝试了以下代码,它自动重新查询子窗体1,但在关闭主窗体时会产生运行时错误(2450):
Private Sub Form_AfterUpdate()
On Error GoTo Err_Form_AfterUpdate
Forms!frmSpendPlan!frmSpendPlanSub.Form.Requery
Exit_Form_AfterUpdate:
Exit Sub
Err_Form_AfterUpdate:
MsgBox Err.Description
Resume Exit_Form_AfterUpdate
End Sub
如果有人有办法在提交子表单2时自动重新查询子表单1数据而不会产生错误,请告诉我,我感谢您提供的任何帮助。
谢谢!
答案 0 :(得分:1)
我有时遇到同样的问题!表单无法正常刷新。
方法1
尝试这行代码而不是当前的重新查询代码。它不应该给你一个错误,但由于错误可能仍然无法正常工作......
Form_frmSpendPlanSub.Requery
我使用这种格式来引用表单,它通常很有效。
方法2
1)您可以尝试在设计视图中点击正在执行“ After_Update ”的表单
2)右键单击表单,然后单击“构建事件。”。并选择“ Expression Builder ”
在表达式构建器中,您可以准确地看到您在表单中的表单形式以及您想要进行的表单...
因此,您可以转到 FORMS - >进行导航。 已加载表单 - > frmSpendPlanSub ,然后从列表中双击“ ” 这将引用您想要影响的表单。 然后你要做的就是将上面框中给出的代码复制到你的VBA代码中,然后引用你想要做的...
E.g。
Forms![frmMainForm]![frmSecondForm].Form![frmThirdForm].Form.Requery
无论如何希望有帮助...