首页 > 解决方案 > 子表单不重新查询

问题描述

我有一个访问表单,您可以在其中选择一个带有下拉列表的用户然后我有一个包含该用户所有许可证的子表单。可以使用按钮从该用户删除许可证。删除许可证后,我想刷新表单,以便它真正消失。

我认为 Form_Dirty 事件是触发刷新的正确事件。我试过了:

Private Sub Form_Dirty(Cancel As Integer)
    MsgBox "deleted a license"
End Sub

每次删除都会显示该框。所以我知道那个事件会触发。完美的。Buuuut 无论我放入该功能的任何刷新命令它都不会刷新。我试过了:

    Me.requery
    Me.Recalc
    Me.refresh
    Forms.user.Form.requery
    Forms.user.licenses.Form.requery

它只是保持不变。如果我按 F5 然后它会刷新。这个怎么可能?

标签: vbams-accessms-access-2016

解决方案


尝试使用子窗体的AfterUpdate事件:

Private Sub Form_AfterUpdate()
    If Me!Active.Value = False Then
        Me.Requery
    End If
End Sub

编辑. 或者:

Private Sub Active_AfterUpdate()
    If Me!Active.Value = False Then
        Me.Dirty = False
        Me.Requery
    End If
End Sub

推荐阅读