A.D.Tejpal
adtp at touchtelindia.net
Sat Sep 17 01:03:03 CDT 2005
Rocky, Modified code given below, should work smoothly. Basically, there was nothing wrong with your original code. The real culprit was found to be use of =< instead of >= , while building up second part of filter string. Some interesting features relevant to programmatic manipulation of filtering on forms are mentioned below. (a) Order of placement of Me.FilterOn statement with respect to Me.Filter statement does not matter. (b) Whenever statement Me.Filter = "" is used, FilterOn property of the form gets automatically set to False. (c) You don't have to use Me.Requery explicitly. It is redundant. Application of any fresh filter condition, takes care of requery as well. Last block of your existing code has been simplified accordingly. Best wishes, A.D.Tejpal -------------- =================================== Private Sub SetFilter() Dim strFilter As String strFilter = "" If IsDate(txtDateFilterStart) Then strFilter = strFilter & "fldPMScheduleStartDate >= #" & _ txtDateFilterStart & "#" End If If IsDate(txtDateFilterEnd) Then If strFilter <> "" Then strFilter = strFilter & " AND " strFilter = strFilter & "fldPMScheduleEndDate <= #" & _ txtDateFilterEnd & "#" End If Me.Filter = "" If Len(strFilter) > 0 Then Me.Filter = strFilter Me.FilterOn = True End If End Sub =================================== ----- Original Message ----- From: Rocky Smolin - Beach Access Software To: AccessD at databaseadvisors.com Sent: Saturday, September 17, 2005 03:49 Subject: [AccessD] Can't Set Filter Dear List: Can anyone see why the following code should generate the error 2448 - you can't assign a value to this object in the line Me.Filter = strFilter? Private Sub SetFilter() Dim strFilter As String strFilter = "" If IsDate(txtDateFilterStart) Then strFilter = strFilter & "fldPMScheduleStartDate >= #" & txtDateFilterStart & "#" End If If IsDate(txtDateFilterEnd) Then If strFilter <> "" Then strFilter = strFilter & " AND " strFilter = strFilter & "fldPMScheduleEndDate =< #" & txtDateFilterEnd & "#" End If If strFilter = "" Then Me.Filter = "" Me.FilterOn = False Else Me.Filter = strFilter Me.FilterOn = True End If Me.Requery End Sub MTIA, Rocky