简体   繁体   中英

MS Access Apply Filter From Another Form

I have this code from another website but it's not working. I want to filter the split view form from another form.

 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

I received this error错误

My best guess is the form wasn't ready to take a filter yet, and that's why the error occurred. DoCmd.OpenForm takes a Where argument to set the filter when opening to prevent this from occuring.

 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

Check if this works. If not, your filter might not be valid for that form.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM