I have a Report with a RequestDate field. I am using a form to filter and it got a little complicated. I have two comboboxes, one to pick which field I want to filter, and one to choose the filter value. I (finally) got almost all of them working, but I am stuck on four: This Week, Next Week, Last Week, Before Last Week.
Everything I find is using two date fields and I can't seem to get Between or <> to work in code view. It makes sense, the txt box is supposed to hold a date not a formula, but can I do something that will allow me to filter that way?
Here is what is working so far for the other options:
Private Sub cboReportField_AfterUpdate()
Me.Filterby.RowSource = "SELECT Filterby, TableField FROM FieldFilterOptions WHERE [TableField] = '" & Me.cboReportField & "' ORDER BY [Filterby]"
End Sub
Private Sub Filterby_AfterUpdate()
If Me.Filterby.Value = "Today" Then
Me.DateFilter = Date
ElseIf Me.Filterby.Value = "Tomorrow" Then
Me.DateFilter = Date + 1
ElseIf Me.Filterby.Value = "Yesterday" Then
Me.DateFilter = Date - 1
End If
End Sub
Private Sub Command153_Click()
Dim strFilter As String
Select Case Me.cboReportField.Value
Case "Priority"
strFilter = "[Priority] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "TaskCategory"
strFilter = "[TaskCategory] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "TaskDescription"
strFilter = "[TaskDescription] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "ReportNeeded"
strFilter = "[ReportNeeded] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "DueDate"
strFilter = "[DueDate]=" & "#" & Me![DateFilter] & "#"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "RequestDate"
strFilter = "[RequestDate]=" & "#" & Me![DateFilter] & "#"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
End Select
End Sub
Everything I find is using two date fields and I can't seem to get Between or <> to work in code view. It makes sense, the txt box is supposed to hold a date not a formula, but can I do something that will allow me to filter that way?
Here is what is working so far for the other options:
Private Sub cboReportField_AfterUpdate()
Me.Filterby.RowSource = "SELECT Filterby, TableField FROM FieldFilterOptions WHERE [TableField] = '" & Me.cboReportField & "' ORDER BY [Filterby]"
End Sub
Private Sub Filterby_AfterUpdate()
If Me.Filterby.Value = "Today" Then
Me.DateFilter = Date
ElseIf Me.Filterby.Value = "Tomorrow" Then
Me.DateFilter = Date + 1
ElseIf Me.Filterby.Value = "Yesterday" Then
Me.DateFilter = Date - 1
End If
End Sub
Private Sub Command153_Click()
Dim strFilter As String
Select Case Me.cboReportField.Value
Case "Priority"
strFilter = "[Priority] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "TaskCategory"
strFilter = "[TaskCategory] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "TaskDescription"
strFilter = "[TaskDescription] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "ReportNeeded"
strFilter = "[ReportNeeded] =" & "'" & Me.Filterby & "'"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "DueDate"
strFilter = "[DueDate]=" & "#" & Me![DateFilter] & "#"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
Case "RequestDate"
strFilter = "[RequestDate]=" & "#" & Me![DateFilter] & "#"
DoCmd.OpenReport "ToDoReport", acViewReport, , strFilter
End Select
End Sub