【问题标题】:Access 2007: Refresh Parent Form from datasheet view in subformAccess 2007:从子窗体中的数据表视图刷新父窗体
【发布时间】:2014-03-26 16:28:06
【问题描述】:

我有一个名为 frmProject 的父窗体。有一个名为 txtTotalTime 的 Total Time 文本框 - 数据控制源对查询执行 DLookUp,将所用时间加在一起。

项目表单上的子表单称为 frmProjectHistory。它的默认视图是数据表视图。

我尝试将 frmProjectHistory 的 On Dirty 事件设置为 Me![frmProject].requery 或 Me![frmProject].[txtTotalTime].requery(或 Forms! 代替 Me!)。每次我得到“找不到对象”后跟 Me!frmProject....

每次在子表单数据表视图中输入新记录或为先前事件调整时间时,我都需要更新 frmProject 上的“总时间”框。

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    您不需要重新查询 Parent 表单上的所有数据吗?如果是这样,您只需使用:

    Me.Parent.Requery
    

    如果您只想刷新那个文本框,请尝试以下不同的变体:

    Me.Parent.txtTotalTime.Requery
    

    Me.Parent.Form.txtTotalTime.Requery
    

    【讨论】:

      【解决方案2】:

      由于 frmProjectHistory 是子窗体,您不能使用 Me 关键字引用父窗体。写出整个引用 - VBA 中的Forms.frmProject.txtTotalTime.Requery 或属性窗口中的=[Forms]![frmProject]![txtTotalTime].Requery

      另外,我认为你应该使用AfterUpdate 事件。我相信OnDirty 在实际保存更改之前触发。

      【讨论】:

      • 谢谢,现在它告诉我 Access 找不到对象“表单”。如果我将其更改为“Forms![frmProject].[txtTotalTime].Requery”,它会给出相同的错误。 “Access 找不到对象‘Forms!frmProject’。
      • 仔细检查表单名称的拼写
      • 父表单是“frmProject”(从属性视图复制)。要更新的文本框名称为“txtTotalTime”Forms![frmProject].[txtTotalTime].Requery
      • 您是在使用事件过程还是在属性窗口中直接输入?
      • Forms![frmProject].[Form].[txtTotalTime].Requery 在引用 txtBox 之前需要添加 Form 对象
      猜你喜欢
      • 2014-08-25
      • 2014-12-16
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多