willy55 ha scritto:
Prova a leggere i seguenti link (sulle possibili motivazioni per il mancato funzionamento del criterio fra le date):
https://support.office.com/en-us/article/Date-criteria-doesn-t-work-in-my-query-04d97845-3124-43fe-93cd-9c78670fef76
https://answers.microsoft.com/en-us/msoffice/forum/msoffice_access-mso_winother-mso_2013_release/why-has-date-stopped-working-in-access-2013/62f52fbb-e846-447f-af38-1f5b52e314d8?auth=1
Grazie Willy per l'interessamento.
Ho letto tutto, il mio problema però non è la correttezza della forma della query sulle date. Infatti sul 2010 tutto funziona bene. Il problema è che quando vado ad utilizzare l'applicativo compilato sul 2013 il filtro non funziona. Il brutto è che non mi dà nessun errore, semplicemente mi restituisce la tabella dell'intero periodo senza applicare il filtro che ho impostato con il Vba.
Vi mostro il codice del tasto filtro per data:
Private Sub CmdFiltroPeriodo_Click()
On Error GoTo Errore
Dim DataDal As Date
Dim DataAl As Date
Dim Str As String
If IsNull(Me.TxtDataDal) Or Me.TxtDataDal = "" Then
MsgBox "Inserire la data di partenza", vbCritical, "Attenzione data mancante"
Me.TxtDataDal.SetFocus
Exit Sub
End If
If IsNull(Me.TxtDataAl) Or Me.TxtDataAl = "" Then
MsgBox "Inserire la data di fine", vbCritical, "Attenzione data mancante"
Me.TxtDataAl.SetFocus
Exit Sub
End If
DataDal = Format(Me.TxtDataDal, "mm/dd/yyyy hh.mm.ss")
DataAl = Format(Me.TxtDataAl, "mm/dd/yyyy hh.mm.ss")
Me.TxtDal = DataDal
Me.TxtAL = DataAl
Str = "DELETE TabAppEventi.* FROM TabAppEventi"
DoCmd.RunSQL Str
Str = "INSERT INTO TabAppEventi SELECT tabeventi.* FROM tabeventi WHERE DataEvento BETWEEN #" & DataDal & "# AND #" & DataAl & "#"
DoCmd.RunSQL Str
Str = "SELECT TabAppPersStatPP.*, tabprocedimento.*, tabreati.Tipologia, tabreati.Articolo FROM tabreati RIGHT JOIN (TabAppPersStatPP RIGHT JOIN tabprocedimento " & _
"ON TabAppPersStatPP.ProcPenColl = tabprocedimento.Proc_Pen) ON tabreati.ProcPenReato = tabprocedimento.Proc_Pen " & _
"WHERE tabprocedimento.DataCreazione BETWEEN #" & DataDal & "# AND #" & DataAl & "#"
Me.RepStatisticheProcedimentiPenali.Report.Report.RecordSource = Str
If Me.ControlloArchiviati.Value = -1 Then
Me.RepStatisticheProcedimentiPenali.Report.Report.Filter = ""
Me.RepStatisticheProcedimentiPenali.Report.Report.FilterOn = False
Me.RepStatisticheProcedimentiPenali.Report.Requery
Else
Str = "Archiviato = 0"
Me.RepStatisticheProcedimentiPenali.Report.Report.Filter = Str
Me.RepStatisticheProcedimentiPenali.Report.Report.FilterOn = True
Me.RepStatisticheProcedimentiPenali.Report.Requery
End If
Str = "DELETE TabAppReati.* FROM TabAppReati"
DoCmd.RunSQL Str
Str = "INSERT INTO TabAppReati SELECT tabreati.* FROM tabreati WHERE Data BETWEEN #" & DataDal & "# AND #" & DataAl & "#"
DoCmd.RunSQL Str
Me.GraficoReati.Requery
Me.RepStatisticheEventiTipologia.Requery
Me.RepStatisticheEventiSezione.Requery
Me.RepStatisticheProcedimentiPenali.Requery
Exit Sub
Errore:
MsgBox Err.Description
End Sub
Questo codice crea una query come base dati per un report e inserisce dati in due tabelle di appoggio per altri due report.
Secondo voi perché sul 2010 funziona benissimo e quando uso il 2013 con il file compilato mi restituisce i report per tutto il periodo senza applicare il filtro su data?