Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Giuseppe,
se cerchi nella community trovi un sacco di materiale a riguardo, il tema è molto trattato.
Se vuoi filtrare in base ad una data generalmente si procede da data a data .... ma il tuo quesito è diverso.
In questi casi è bene formattare il controllo in modo che il dbEngine interpreti correttamente il campo data, come minimo quindi creare il filtro con il formato anglosassone.
Prevederei oltre a questo la possibilità che mantenere la formattazione in base alle impostazioni di sistema, la possibilità qualora il filtro sia null o nullString che non venga applicato ( il filtro) e/o visualizzare tutti i records, come impedire che il filtro venga rimosso agendo sul ribbon.
vedi qui :
ed adatta il seguente codice al tuo scenario, personalizzando controlli e campi ( servirebbe anche validare il controllo data...trovi qui sotto un esempio minimale).
Option Compare Database
Option Explicit
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
Cancel = ApplyType = 0
End Sub
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case DataErr
Case 2113
VBA.MsgBox prompt:="Non hai inserito una data valida!", _
Buttons:=vbCritical, _
Title:="Warning!"
Response = acDataErrContinue
Case Else
' what to do
End Select
End Sub
Private Sub Form_Open(Cancel As Integer)
With Me
.Filter = "1=0"
.FilterOn = True
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
With Me
.Filter = vbNullString
.FilterOn = False
End With
End Sub
Private Sub txtData_AfterUpdate()
With Me
If Len(.txtData & vbNullString) > 0 Then
.Filter = "[order date]=" & Format$(.txtData, "#mm/dd/yyyy#")
' da valutare anche l'istruzione che segue
'.Filter = "[order date]=" & CLng(.txtData)
.FilterOn = True
Else
.Filter = vbNullString
.FilterOn = False
End If
End With
End Sub
HTH.
ciao, Sandro.