通过弹出子窗体(2)添加新的子窗体(1)记录后重新查询子窗体(1) - Access 2007

时间:2013-04-17 22:47:16

标签: popup ms-access-2007 runtime-error multiple-forms subforms

我有一个包含两个子表单(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数据而不会产生错误,请告诉我,我感谢您提供的任何帮助。

谢谢!

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

无论如何希望有帮助...