【发布时间】: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