Finally hit me the OR criteria are all from the same control. Don't need separate If Thens. Try:
Code:
If Not IsNull(Me.Keyword_Search) Then
strWhere = strWhere & "([Description] Like '*" & Me.Keyword_Search & "*' OR " & _
"[Title] Like '*" & Me.Keyword_Search & "*' OR " & _
"[Subject] Like '*" & Me.Keyword_Search & "*') AND "
End If
If Not IsNull(Me.CmbFormat) Then
strWhere = strWhere & "([PhysicalFormat] = '" & Me.CmbFormat & "') AND "
End If
If Not IsNull(Me.StartDate) And Not IsNull(Me.EndDate) Then
strWhere = strWhere & "([OriginalDate] between #" & (Me.StartDate) & "# AND #" & (Me.EndDate) & "#) AND "
ElseIf Not IsNull(Me.StartDate) Then
strWhere = strWhere & "([OriginalDate] >= #" & Me.StartDate & " #) AND "
ElseIf Not IsNull(Me.EndDate) Then
strWhere = strWhere & "([OriginalDate] <= #" & Me.EndDate & " #) AND "
End If
lngLen = Len(strWhere) - 5
If lngLen <= 0 Then 'Nah: there was nothing in the string.
'MsgBox "No criteria", vbInformation, "Nothing to do."
Else 'Yep: there is something there, so remove the " AND " at the end.
strWhere = Left$(strWhere, lngLen)
Me.Filter = strWhere
Me.FilterOn = True
End If