Newsgroup: it.comp.appl.access
Titolo: Errore veramente misterioso su filtro SQL!

Ragazzi, non so che dire.
A volte funziona a volte no..
DoCmd.RunSQL "SELECT * INTO TabECI_DistinteImpresa FROM
TabECI_TutteDistinteImpresa WHERE [DataImmissioneRecord] >= #" & datData1 &
"# And [DataImmissioneRecord] <= #" & datData2 & "#"
A volte il risultato è corretto altre volte no.
Ho notato che se datData1 è contenuto in un record esistente in
TabECI_TutteDistinteImpresa tutto funziona, altrimenti no.
Come è possibile?
Ciao

"vuLCan Karayan" <"vuLCan> wrote in message
news:_dOfe.1355837$
35.50...@news4.tin.it

Potrebbe dipendere dal formato della data?
Prova a usare la funzione FORMAT$ ...
Ciao,
ROberto
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Prova a usare la funzione FORMAT$ ...
Cosa intendi?
I valori datData1 e datData2 sono dichiarati così
Dim datData1 as Date
Dim datData2 as Date
Ecco come sono inizializzati:
datData1 = me.Data1
datData2 = me.Data2
Data1 e Data2 sul form sono due caselle di testo nelle quali l'utente
immette due date.
(Vi è persino la maschera di input...)
Se fosse davvero come dici , mi chiedo a che diamine serva utilizzare un
costrutto SQL quando una query di accodamento fa tutto molto velocemente! :(

 Prova a usare la funzione FORMAT$ ...
Sai una cosa?
Con un solo parametro funziona!!!!
Che mi venga...
La SQL seguente
DoCmd.RunSQL "SELECT * INTO TabECI_DistinteImpresaAntes FROM
TabECI_TutteDistinteImpresa WHERE [DataArrivo] <= #" & datData1 & "#"
funziona alla perfezione.
Se fosse un problema nel formato dovrebbe anche questa zoppicare, no?
Invece, senza il connettore AND, questa va benissimo.
Riprovo a ricostruire da zero il costrutto SQL...

"vuLCan Karayan" <"vuLCan> wrote in message
news:aKOfe.1356102$
35.50...@news4.tin.it
[CUT]
NOn è che intendi aprire un 3D per ogni dubbio filosofico
che ti viene in mente.......!!!!!!!!!!!!!
Cavolo hai aperto 3 3D sulla stessa cosa, ma perchè 
non prosegui lo stesso.
Capisco la foga di voler risolvere i problemi, ma anche un
pò di coerenza.
Saluti.
@Alex


 pň di coerenza.
Scusa, Alex..
Ma non si tratta del medesimo problema.
Io pensavo di fare un favore a chi legge nel separare in piů thread i
problemi anche se il tratto di codice č lo stesso.
Ho comunque risolto.
Ecco il costrutto SQL corretto che funziona.
DoCmd.RunSQL "SELECT * INTO TabECI_DistinteImpresa FROM
TabECI_TutteDistinteImpresa WHERE (TabECI_TutteDistinteImpresa.DataArrivo)
Between #" & datData1 & "# AND #" & datData2 & "#"
Ciao

 Ciao
Mi fa piacere tu abbia risolto.
Il problema legato alla sintassi SQL lo hai postato 4 volte.
Capisco i tuoi dubbi nel gestire l'ottimizzazione dei messaggi,
ma ti renderai conto che tappezzare il NG di post non è sempre
costruttivo.
In questo caso, secondo me, data l'origine Tecnica del problema
era consono mantenere solo 1 3D in modo che chi stesse seguendo
l'argomento non si fosse costretto a rimbalzare da un 3D
ad un altro per capire i passi e le difficoltà che hai segnalato. 
Non devi scurarti, ma ottimizzare meglio le risorse.
Ciao


 Between #" & datData1 & "# AND #" & datData2 & "#"
be, non è un problema di istruzione Sql, hai cambiato il campo sottoposto al
filtro Where.
Non c'è nessuna differenza tra le due query (a parte il campo)
------------
DoCmd.RunSQL "SELECT * INTO TabECI_DistinteImpresa FROM
TabECI_TutteDistinteImpresa WHERE [DataImmissioneRecord] >= #" & datData1 &
"# And [DataImmissioneRecord] <= #" & datData2 & "#"
-----------
in ogni caso fai attenzione perchè la concatenazione delle date in testo è
soggetta alla localizzazione del computer e il linguaggio Sql di Access
prevede il formato #mm/dd/yyyy# , meglio ancora se gli passi il formato
#yyyy/mm/dd#
Ciao Giorgio

 #yyyy/mm/dd#
Ciao Giorgio.
Credo che tu abbia centrato il problema.
In effetti sembra che vengano restituiti i dati in base al formato
mm/dd/yyyy
Come si fa a passare una data ad una stringa SQL in modo che questa sia in
formato dd/mm/yyyy?
O meglio, come posso trasformare la data inserita dall'utente in mm/dd/yyyy
in modo che la stringa la riconosca regolarmente?
Sto provando con Format e con CDate ma sono in alto mare.
Ciao

 Ciao
Puoi passare la data nel formato yyyy/mm/dd in questo modo
-----------
Between #" & Format(datData1,"yyyy/mm/dd") & "# AND #" &
Format(datData1,"yyyy/mm/dd") & "#"
-----------
o come indicato nel sito di Karl (6.8 Passare una data ad una stringa SQL)
----------
Between " & Format(datData1,"\#yyyy\-mm\-dd\#") & " AND " &
Format(datData1,"\#yyyy\-mm\-dd\#")
----------
Ciao Giorgio

 ----------
Mille volte grazie Giorgio.