If you're trying to dynamically build your criteria for the query driving your report that's one thing.
If you're trying to apply a filter that's another thing entirely.
when you open a form the me. is referring to the report itself NOT the form where you have your selected items you'd want something more like:
Code:
Private Function BuildFilter() As Variant
Dim varWhere As Variant
Dim tmp As String
Dim tmpW As String
tmp = """"
tmpW = "*"""
varWhere = Null
If Me.txtDate > "" Then
varWhere = varWhere & "[CurrentDate] like " & tmp & forms!formname!txtDate & tmpW & " AND "
End If
If Me.txtTypeOfVisit > "" Then
varWhere = varWhere & "[TypeofVisit] like " & tmp & forms!formname!txtTypeOfVisit & tmpW & " AND "
End If
If Me.txtVisitorsName > "" Then
varWhere = varWhere & "[VisitorName] like " & tmp & forms!formname!txtVisitorsName & tmpW & " AND "
End If
If Me.txtHousing > "" Then
varWhere = varWhere & "[Housing] like " & tmp & forms!formname!txtHousing & tmpW & " AND "
End If
If Me.txtNameOfInmate > "" Then
varWhere = varWhere & "[InmateName] like " & tmp & forms!formname!txtNameOfInmate & tmpW & " AND "
End If
If Me.txtBooking > "" Then
varWhere = varWhere & "[Booking] like " & tmp & forms!formname!txtBooking & tmpW & " AND "
End If
If Me.txtTimeIn > "" Then
varWhere = varWhere & "[TimeIn] like " & tmp & forms!formname!txtTimeIn & tmpW & " AND "
End If
If Me.txtTimeOut > "" Then
varWhere = varWhere & "[TimeExit] like " & tmp & forms!formname!txtTimeOut & tmpW & " AND "
End If
If IsNull(varWhere) Then
varWhere = ""
Else
varWhere = "WHERE " & varWhere
If Right(varWhere, 5) = " AND " Then
varWhere = Left(varWhere, Len(varWhere) - 5
End If
End If
debug.print varWhere
BuildFilter = varWhere
End Function
Notice I put in a DEBUG.PRINT statement before you exit the function, that way you can check to see if it's populating with the values you want