ci sono diversi problemini da mettere a posto ......
1°)
Sub Search()
perche non scrivi Private Sub Search() ??? come la hai scritta te è pubblica quindi impegna piu risorse
2°)
Dim strCriteria, task As String
scritta cosi strCriteria è un Variant mentre invece ti basta una String
lo devi scrivere cosi:
Dim strCriteria As String, task As String
oppure cosi:
Dim strCriteria As String
Dim task As String
3°)
a cosa ti serve il Me.Refresh ???
4°)
If IsNull(Me.ordinedatada) Or IsNull(Me.ordinedataa) Then
Tu verifichi che non sia nullo, ma se la data è incongrua per esempio 41/08/2018 ??
consiglio di usare If Not IsDate .......
poi puoi dirigere il focus direttamente al controllo incriminato evitando di andare genericamente al "Da"
5°) questo è il vero problema
a cosa ti serve task = "select * from tblAllTransaction where (" & strCriteria & ") order by [SCADENZA]"
se devi applicare il filtro ti basta solamente la parte "WHERE" quindi strCriteria
6°)
DoCmd.ApplyFilter task
non devi usare ApplyFilter,
poi il filtro lo devi applicare alla sottomaschera, perche i tuoi dati sono lì, giusto ??
Tu non hai fatto riferimento alla sottomaschera ......
alla fine io lo farei cosi:
codice:
Private Sub Comando34_Click()
'Stop
Call Search
End Sub
Private Sub Search()
Dim strCriteria As String
Dim dtmDa As Date
Dim dtmAa As Date
If Not IsDate(Me.ordinedatada.Value) Then
Me.ordinedatada.SetFocus
MsgBox "Please enter the date range 'Dal' ", vbInformation, "Date Range Required"
Exit Sub ' questo interrompe il codice
End If
If Not IsDate(Me.ordinedataa.Value) Then
Me.ordinedataa.SetFocus
MsgBox "Please enter the date range 'Al' ", vbInformation, "Date Range Required"
Exit Sub
End If
dtmDa = Format(Me.ordinedatada.Value, "mm/dd/yyyy") ' questo è fondamentale, diversamente ti prende il 2/10 per 10/2 (2 Ottobre per 10 Febbraio)
dtmAa = Format(Me.ordinedataa.Value, "mm/dd/yyyy")
strCriteria = "([SCADENZA] >= #" & dtmDa & "# And [order date] <= #" & dtmAa & "#)"
Me!SMQuery1.Form.Filter = strCriteria ' Attento, SMQuery1 è il nome della sottomaschera dato all'interno della Maschera
Me!SMQuery1.Form.FilterOn = True
End Sub
.