【问题标题】:MS Access Apply Filter From Another FormMS Access 从另一个表单应用过滤器
【发布时间】:2017-12-15 13:51:42
【问题描述】:

我从另一个网站获得此代码,但它不起作用。 我想从另一个表单中过滤拆分视图表单。

 Private Sub btnSearch_Click()

   '//Check that other form is loaded - if not, then open it
    If Not fIsLoaded("frmMain") Then
        DoCmd.OpenForm ("frmMain")
    End If
    '//Set filter to listbox criterion
    Forms("frmMain").Filter = "[Priorities] = " & Chr(34) & Me.Priorities & Chr(34)
    Forms("frmMain").FilterOn = True

End Sub

Function fIsLoaded(ByVal strFormname As String) As Boolean

    'Returns False if form is not open or True if Open
    If SysCmd(acSysCmdGetObjectState, acForm, strFormname) <> 0 Then

        If Forms(strFormname).CurrentView <> 0 Then
            fIsLoaded = True
        End If

    End If
End Function

我收到了这个错误

【问题讨论】:

    标签: forms ms-access vba ms-access-2010


    【解决方案1】:

    我最好的猜测是表单还没有准备好进行过滤,这就是发生错误的原因。 DoCmd.OpenForm 采用Where 参数来设置打开时的过滤器,以防止这种情况发生。

     Private Sub btnSearch_Click()
    
       '//Check that other form is loaded - if not, then open it with the filter
        If Not fIsLoaded("frmMain") Then
            DoCmd.OpenForm ("frmMain",,,"[Priorities] = " & Chr(34) & Me.Priorities & Chr(34))
        Else
        '//Set filter to listbox criterion
        Forms("frmMain").Filter = "[Priorities] = " & Chr(34) & Me.Priorities & Chr(34)
        Forms("frmMain").FilterOn = True
        End If
    End Sub
    

    检查这是否有效。如果不是,您的过滤器可能对该表单无效。

    【讨论】:

    • 您好,这个宏已经在过滤查询,但它是否显示所有具有优先级的数据。 [MasterQuery]![Priorities]=[Priorities]
    • 嗯,这是一个完全不同的问题。如果您在将多个过滤器应用于单个表单时遇到问题,可以随时提出。
    • 是的,如果可能的话,我想按优先级、国家、城市过滤数据
    • 好吧,如前所述,这是一个不同的问题。不要在 cmets 中问它,提出一个新问题,并提供必要的信息供社区回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多