Risolto. Grazie a tutti.
Quanto alle osservazioni:
1) l' end if (che avevo inizialmente inserito) non me lo accetta, dandomi l'errore “end if senza blocco if”. Il motivo non l'ho capito, ma funzionando senza ci sarà una ragione che và oltre le mie conoscenze.
2) l'assegnazione And Me![NomeControllo].Value <> "" , (anche se spesso inutile) la inserisco sempre nei filtri multipli per due ragioni. Primo, perché nelle cbo con elenco valori in origine riga, aggiungo un valore “” per deselezionare rapidamente il filtro dal menù a tendina, senza evidenziare il valore e cancellarlo. Secondo, perché ho sempre il timore della differenza in un record tra campo nullo (vergine) e campo cancellato. Capisco l'inutilità in molte occasioni, ma è una condizione in più che non mi genera mai problemi
3) Quanto all'utilizzo della formattazione “#” .. format$(…..) , l'ho appreso proprio per il campo data. L'ho utilizzato anche per l'Euro perché inizialmente non avevo impostato campo e controllo con la medesima formattazione ( sul primo avevo € 10,00 mentre sul controllo 10,00 €)
Avendo letto sulla guida le varie formattazioni tramite cancelletto, oltre ad un post sul forum che affrontava l'argomento (se pur in altro contesto), pensavo che il problema fosse quello.
Ora cmq funziona tutto (..ma senza end if..). Questo l'intero filtro.
' INIZIO SET FILTER
Private Sub cboMovimento_AfterUpdate()
Call SetFilter
End Sub
Private Sub cboConto_AfterUpdate()
Call SetFilter
End Sub
Private Sub txtDataInizio_AfterUpdate()
Call SetFilter
End Sub
Private Sub txtDataFine_AfterUpdate()
Call SetFilter
End Sub
Private Sub txtImportoMin_AfterUpdate()
Call SetFilter
End Sub
Private Sub txtImportoMax_AfterUpdate()
Call SetFilter
End Sub
Sub SetFilter()
Dim strWH As String
If Len(Me!cboMovimento.Value & vbNullString) > 0 And Me!cboMovimento.Value <> "" Then _
strWH = strWH & "Movimento='" & Me.cboMovimento.Value & "'" & " AND "
If Len(Me!cboConto.Value & vbNullString) > 0 And Me!cboConto.Value <> "" Then _
strWH = strWH & "Conto='" & Me.cboConto.Value & "'" & " AND "
If Len(Me!txtDataInizio.Value & vbNullString) > 0 And Me!txtDataInizio.Value <> "" Then _
strWH = strWH & "[Data]>=#" & Format$(Me!txtDataInizio.Value, "mm/dd/yyyy") & "#" & " AND "
If Len(Me!txtDataFine.Value & vbNullString) > 0 And Me!txtDataFine.Value <> "" Then _
strWH = strWH & "[Data]<=#" & Format$(Me!txtDataFine.Value, "mm/dd/yyyy") & "#" & " AND "
If Len(Me!txtImportoMin.Value & vbNullString) > 0 Then strWH = strWH & "[Importo]>=" & Me!txtImportoMin.Value & " AND "
If Len(Me!txtImportoMax.Value & vbNullString) > 0 Then strWH = strWH & "[Importo]<=" & Me!txtImportoMax.Value & " AND "
If Len(strWH) <> 0 Then strWH = Mid$(strWH, 1, Len(strWH) - 5)
Me.Filter = strWH
Me.FilterOn = True
End Sub
Grazie nuovamente a tutti per l'aiuto e le osservazioni