【问题标题】:access vba click buttons refresh form but trigger click event do not refresh the form访问vba点击按钮刷新表单但触发点击事件不刷新表单
【发布时间】:2018-04-02 22:39:17
【问题描述】:

我有 2 个按钮来过滤/取消过滤子表单。事件代码(私有)正在调用公共函数:

我可以点击按钮过滤/取消过滤,效果很好。

Option Compare Database
Option Explicit

Dim PartCalendarSubHeaderFilterOn As Boolean

Private Sub imgClearFilter_Click()
    PartCalendarSubHeaderFilterOn = False
    UpdatePartCalendarSubHeaderFilter
End Sub

Private Sub imgFavoriteFilter_Click()
    PartCalendarSubHeaderFilterOn = True
    UpdatePartCalendarSubHeaderFilter
End Sub

Public Sub UpdatePartCalendarSubHeaderFilter()
    If PartCalendarSubHeaderFilterOn Then
        PartCalendarSubHeaderFilter
    Else
        PartCalendarSubHeaderClearFilter
    End If
    Me.Requery
End Sub

Private Sub PartCalendarSubHeaderClearFilter()
    Dim sql As String
    sql = "... "
    Me!frmPartCalendarSubHeaders.Form.RecordSource = sql
End Sub

Private Sub PartCalendarSubHeaderFilter()
    Dim sql As String
    sql = "... "
    Me!frmPartCalendarSubHeaders.Form.RecordSource = sql
End Sub

从另一个表单当前事件,我想通过调用公共方法调用更新过滤子来刷新部分日历:

Private Sub Form_Current()
    ...
    'update part calendar
    Form_frmPartCalendarSub.UpdatePartCalendarSubHeaderFilter
    Me.Parent!frmPartCalendarSub.Requery
End Sub

当我在调试模式下逐行跟踪时,我可以看到它通过与单击过滤器/取消过滤器按钮时完全相同的代码,通过行

Me!frmPartCalendarSubHeaders.Form.RecordSource = sql

Me.Requery

但子表单没有按预期刷新。

有趣的事情:在调试模式下,如果我在进入代码行后重置一次

Public Sub UpdatePartCalendarSubHeaderFilter()

然后它可以正常工作:我可以使用按钮进行过滤,当我选择另一条记录时,它会根据选择的过滤器正确刷新。

你有没有遇到过这个问题之王?我应该更正什么才能使代码从头开始工作,而不必中断调试模式?

【问题讨论】:

    标签: vba forms ms-access refresh


    【解决方案1】:

    尝试替换

    Form_frmPartCalendarSub.UpdatePartCalendarSubHeaderFilter
    

    Forms("frmPartCalendarSub").UpdatePartCalendarSubHeaderFilter
    

    第一个命令不能保证代码以正确的形式执行。最好避免直接调用Form的类方法,可能会导致意想不到的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      相关资源
      最近更新 更多