I left in the "task" stuff even though you don't seem to be using it. I also took the liberty of condensing by using the click event. All of this code is behind/on the form, yes? Then there's no need to use the click event to just call this procedure on the same form. If you'd rather have it your way, you should be able to fix it. Not sure why you have refresh either but I left it in. Hopefully I didn't mess up your criteria lines by moving them around. Suggest you copy the form and apply this to the copy as my sig says.
Code:
Private Sub cmdApplyFilter_Click()
Dim strCriteria As String, task As String
Me.Refresh
If IsNull(Me.OrderDateFrom) Or IsNull(Me.OrderDateTo) Then
MsgBox "Please enter the date range", vbInformation, "Date Range Required"
Me.OrderDateFrom.SetFocus
Exit Sub
End If
strCriteria = "[MyDate] >= " & Format(Me.OrderDateFrom, "\#mm\/dd\/yyyy\#") & _
" And [MyDate] <= " & Format(Me.OrderDateTo, "\#mm\/dd\/yyyy\#")
If Not IsNull(Me.cboIncomeType) Then
strCriteria = strCriteria & " AND [IncomeType] = '" & Me.cboIncomeType & "'"
End If
'task = "select * from ALL_INCOME where (" & strCriteria & ") order by [DATE]"
DoCmd.OpenReport "rptAllInvoice", acViewPreview, ,strCriteria, acWindowNormal
End Sub