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

Posted

技术标签:

【中文标题】通过弹出子表单 (2) 添加新子表单 (1) 记录后重新查询子表单 (1) - Access 2007【英文标题】:Requery subform (1) after adding a new subform (1) record via pop-up subform (2) - Access 2007 【发布时间】:2013-04-17 22:47:16 【问题描述】:

我有一个包含两个子表单(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】:

我有时和你有同样的问题!表单没有正确刷新。

方法一

试试这行代码,而不是当前的重新查询代码。它不应该给你一个错误,但由于错误可能仍然无法工作......

Form_frmSpendPlanSub.Requery

我使用这种格式来跨表单引用,并且通常效果很好。

方法二

1) 您可以尝试在设计视图中单击正在执行“After_Update”的表单

2) 右键单击​​表单并单击“BUILD EVENT.”。并选择“表达式生成器

在表达式生成器中,您可以准确地看到您在表单中的链接到您想要访问的表单以及您想要做什么......

因此,您可以通过 FORMS--> Loaded Forms--> frmSpendPlanSub 导航自己,然后从列表中翻倍点击“” 这将使您参考您想要影响的表单。 然后您所要做的就是将上面框中提供给您的代码复制到您的 VBA 代码中,然后引用您想要执行的操作...

例如

Forms![frmMainForm]![frmSecondForm].Form![frmThirdForm].Form.Requery

希望对你有帮助……

【讨论】:

谢谢!!方法1完美!我在 frmSpendPlanSub AfterUpdate 上使用了它。如果我有更多的声望点,我会给你投票。再次感谢! 没问题!很高兴它有帮助:)

以上是关于通过弹出子表单 (2) 添加新子表单 (1) 记录后重新查询子表单 (1) - Access 2007的主要内容,如果未能解决你的问题,请参考以下文章

提问:js如何弹出子窗口并父窗口不能操作

微信后台怎么弹出表单

如何选择子表单记录并在弹出的主表单中显示

vue后台管理系统开发流程全记录_类别管理功能开发: 类别新增

如何将焦点设置在打开新表单之前选择的最后一条记录上

Microsoft Access 2013 - 无法通过子表单添加新记录