D
davethewelder
Hi, I have a development dbase which I have designed the forms to search for
the no of Assessments completed and the number of Reviews completed. In this
dbase the Assessment table has 524 rows and the review table has 524 rows.
I have used the same calendar to populate the unbound textboxes e.g Allen
Browne's, and the same code for the filter in the On Click Event.
Private Sub cmdFilter_Click()
'Purpose: Build up the criteria string form the non-blank search
boxes, and apply to the form's Filter.
'Notes: 1. We tack " AND " on the end of each condition so you can
easily add more search boxes; _
we remove the trailing " AND " at the end.
' 2. The date range works like this: _
Both dates = only dates between (both
inclusive. _
Start date only = all dates from this one onwards; _
End date only = all dates up to (and including
this one).
Dim strWhere As String 'The criteria string.
Dim lngLen As Long 'Length of the criteria string
to append to.
'Const conJetDate = "#mm/dd/yyyy#" 'The format expected for dates in a
JET query string.
Const conJetDate = "\#mm\/dd\/yyyy\#" 'The format expected for dates
in a JET query string.
If Not IsNull(Me.txtStartDate) Then
strWhere = strWhere & "([Review Date] >= " & Format(Me.txtStartDate,
conJetDate) & ") AND "
End If
'Another date field example. Use "less than the next day" since this
field has times as well as dates.
If Not IsNull(Me.txtEndDate) Then 'Less than the next day.
strWhere = strWhere & "([Review Date] < " & Format(Me.txtEndDate +
1, conJetDate) & ") AND "
End If
'***********************************************************************
'Chop off the trailing " AND ", and use the string as the form's Filter.
'***********************************************************************
'See if the string has more than 5 characters (a trailng " AND ") to
remove.
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)
'For debugging, remove the leading quote on the next line. Prints to
Immediate Window (Ctrl+G).
'Debug.Print strWhere
'Finally, apply the string as the form's Filter.
Me.Filter = strWhere
Me.FilterOn = True
End If
End Sub
The search on the Assessment form works but the Review form does not.
On the Calendar selection button the On Click code is
"=CalendarFor([txtStartDate],"Set the start date")".
I cannot see any difference in the code except the field name.
Can anyone throw any light on this?
Any help appreciated.
Davie
the no of Assessments completed and the number of Reviews completed. In this
dbase the Assessment table has 524 rows and the review table has 524 rows.
I have used the same calendar to populate the unbound textboxes e.g Allen
Browne's, and the same code for the filter in the On Click Event.
Private Sub cmdFilter_Click()
'Purpose: Build up the criteria string form the non-blank search
boxes, and apply to the form's Filter.
'Notes: 1. We tack " AND " on the end of each condition so you can
easily add more search boxes; _
we remove the trailing " AND " at the end.
' 2. The date range works like this: _
Both dates = only dates between (both
inclusive. _
Start date only = all dates from this one onwards; _
End date only = all dates up to (and including
this one).
Dim strWhere As String 'The criteria string.
Dim lngLen As Long 'Length of the criteria string
to append to.
'Const conJetDate = "#mm/dd/yyyy#" 'The format expected for dates in a
JET query string.
Const conJetDate = "\#mm\/dd\/yyyy\#" 'The format expected for dates
in a JET query string.
If Not IsNull(Me.txtStartDate) Then
strWhere = strWhere & "([Review Date] >= " & Format(Me.txtStartDate,
conJetDate) & ") AND "
End If
'Another date field example. Use "less than the next day" since this
field has times as well as dates.
If Not IsNull(Me.txtEndDate) Then 'Less than the next day.
strWhere = strWhere & "([Review Date] < " & Format(Me.txtEndDate +
1, conJetDate) & ") AND "
End If
'***********************************************************************
'Chop off the trailing " AND ", and use the string as the form's Filter.
'***********************************************************************
'See if the string has more than 5 characters (a trailng " AND ") to
remove.
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)
'For debugging, remove the leading quote on the next line. Prints to
Immediate Window (Ctrl+G).
'Debug.Print strWhere
'Finally, apply the string as the form's Filter.
Me.Filter = strWhere
Me.FilterOn = True
End If
End Sub
The search on the Assessment form works but the Review form does not.
On the Calendar selection button the On Click code is
"=CalendarFor([txtStartDate],"Set the start date")".
I cannot see any difference in the code except the field name.
Can anyone throw any light on this?
Any help appreciated.
Davie