MS Access从另一个表单应用筛选器

时间:2017-07-11 13:11:10

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

我从其他网站获得此代码,但它无效。 我想从另一个表单中过滤拆分视图表单。

 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

我收到了这个错误 Error

1 个答案:

答案 0 :(得分:0)

我最好的猜测是表单尚未准备好采用过滤器,这就是错误发生的原因。 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

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