【问题标题】:On activate does not fire with my Modal/Pop-Up form to Requery激活时不会触发我的模态/弹出表单以重新查询
【发布时间】:2012-08-24 06:32:15
【问题描述】:

我有一个模态/弹出表单frmEditContact打开

在此表单上有一个组合框,其中包含一个查询填充的地址cmbAddressList。 当用户想要添加不存在的地址时,有一个按钮可以打开frmAddress,他们可以在其中添加地址。

frmAddress 允许他们在列表中输入地址并提供保存或取消选项(这两个操作都在之后关闭表单)。关闭此表单后,焦点现在再次位于 frmEditContact

我想在他们关闭另一个表单后使用docmd.Requery cmbAddressList 重新填充组合框

我不知道在哪里处理这个问题,我尝试过 On Avtivate、On Load、On Update、On Open、On Focus...但是它们都没有触发,因为我在使用 frmEditContact 时保持打开状态其他形式

有没有办法让 frmEditContact 一直保持打开状态,但仍然会触发一个动作事件,以便我可以重新查询? On Activate 是否不适用于模态表单?

【问题讨论】:

    标签: forms ms-access combobox modal-dialog


    【解决方案1】:

    您可以从 frmAddress 重新查询组合:

    Forms!frmEditContact.cmbAddressList.Requery
    

    我建议您使用保存按钮来运行重新查询。

    【讨论】:

    • 这是一个很好的解决方法,但它不能解决根本问题。令人失望的是,Access 在弹出窗口后没有触发On Activate 事件。
    【解决方案2】:

    在您的 frmEditContact 代码中试试这个。

    DoCmd.OpenForm "frmAddress", acNormal, WindowMode:=acDialog
    Me.cmbAddressList.Requery
    

    由于frmAddress以对话模式打开,下一行(Requery)将在frmAddress关闭后才会运行。

    【讨论】:

    • +1 因为这是一种有效的方法。它只是不如 Remou 的那么好,因为无论savecancel 是什么,每次关闭frmAddress 时它都会重新查询。
    • @DanielCook 将控件引用硬连接到 frmAddress,正如 R 所建议的那样,只要 frmEditContact 永远是打开 frmAddress 的唯一形式,它就可以正常工作。但在我看来,frmAddress 听起来像是可以从多种形式调用的。
    • @HansUp 你说得很好,尽管在这种特殊情况下,frmAddress 只能从 frmEditContact 打开。不过,我以后会记住对话模式,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-07-24
    • 2015-12-12
    • 2021-10-30
    • 2020-07-19
    • 1970-01-01
    • 2018-08-02
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多