I have created two unbound boxes on a form that users can enter name [cbonamefilter] and date [cmboyearfilter]. I want the form to filter by name and the "YYYY" part of the date. I have researched the forum and found most relative responses and tried to use suggested coding. The name portion of the filter works great but I'm having trouble getting the year part to work. I was successful when I was entered an exact date but not for just the year portion. I'm new to VBA so I'm not sure what I am missing. I get a runtime error when I try to run the code below.
Thanks for any help
Code:
Private Sub cbonamefilter_AfterUpdate()
Call CheckFilter
End Sub
Private Sub cmboyearfilter_AfterUpdate()
Me!cmboyearfilter = IIf(IsDate(Me!cmboyearfilter), _
Format(Me!cmboyearfilter, "mm/dd/yyyy"), _ "")
Call CheckFilter
End Sub
Private Sub CheckFilter()
Dim strFilter As String, strOldFilter As String
strOldFilter = Me.Filter
'cbonamefilter - text
If Me!cbonamefilter > "" Then _
strFilter = strFilter & _
" AND ([Initials-Pre] Like '" & _
Me!cbonamefilter & "*')"
'cmboyearfilter - date
If Me!cmboyearfilter > "" Then _
strFilter = strFilter & _
" AND ([PreCal Date] BETWEEN #1/1/yyyy# AND #12/31/yyyy#=" & _
Format(CDate(Me!cmboyearfilter), _
"\#mm/dd/yyyy\#") & ")"
If strFilter > "" Then strFilter = Mid(strFilter, 6)
If strFilter <> strOldFilter Then
Me.Filter = strFilter
Me.FilterOn = (strFilter > "")
End If
End Sub
Comment