Sintassi corretta per una query SQL scritta in vba

Anonimo
2021-04-30T20:47:48+00:00

Buonasera a tutti,

è già un po' di tempo che provo (senza successo) a costruire una query SQL in VBA con una clausola WHERE che mi filtra i record contenuti tra due date.

Se la WHERE viene inserita senza variabili funziona correttamente, cioè in questo modo:

"(((" & Me.txtTabella & ".Data) " & "Between " & "#" & Format(#1/2/2021#, "DD/MM/YYYY") & _

"# And #" & Format(#5/2/2021#, "DD/MM/YYYY") & "#))"

se inserisco le date come variabili la query mi restituisce tutti i record, 

"(((" & Me.txtTabella & ".Data) " & "Between " & Format("#" & Me.dal & "#", "dd/mm/yyyy") & _

" AND " & Format("#" & Me.al & "#", "dd/mm/yyyy") & "))"

ho controllato le due stringhe di cui sopra, usando la finestra immediata e sembrerebbero uguali, quindi teoricamente (o meglio secondo le mie poche conoscenze ) dovrebbero funzionare allo stesso modo, ma non è così!

Potreste darmi qualche consiglio?

PS. Me.Dal e Me.Al sono due Textbox formattate come data.

Saluti Michele

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2021-05-01T07:17:47+00:00

ciao Michele_772,

concatena la stringa che segua alla clausola where

"tuaTabella.CampoDaData>=" & CLng(Me.dal) & " and tuaTabella.CampoDaData<" & CLng(Me.al) + 1

ciao, Sandro.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2021-05-01T13:55:00+00:00

    Prova a cambiare gg/mm/aaaa in mm/gg/aaaa 

    Mimmo

    Grazie Mimmo ma anche invertendo la posizione dei giorni non funziona! 

    Ho trovato nel suggerimento di Sandro la soluzione.

    Grazie per la tua disponibilità e il tuo tempo.

    Saluti Michele

    La risposta è stata utile?

    0 commenti Nessun commento
  2. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2021-05-01T07:03:20+00:00

    Prova a cambiare gg/mm/aaaa in mm/gg/aaaa 

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-05-01T04:04:50+00:00

    Grazie Mimmo per la tua risposta,

    ho provato mille volte ieri ma se uso:

    "(((" & Me.txtTABELLA & ".Data) " & "between " & Format(Me.dal, "dd/mm/yyyy") & _

        " AND " & Format(Me.al, "dd/mm/yyyy") & "))"

    mi preleva un solo record vuoto! :-(

    La risposta è stata utile?

    0 commenti Nessun commento
  4. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2021-04-30T21:38:28+00:00

    Ciao 

    Nelle format togli "#"

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento