Newsgroup: it.comp.appl.access
Titolo: query su intervallo date

Buona serata a tutti
A2003
Su questa query inserisco in due imputbox come data iniziale 26/08/2009 , 
come data finale 26/08/2009
e mi vengono per� restituiti anche i risultati della data 30/06/2009
Inizio Codice
 SELECT TipiPietanze.TipoPietanza AS tipopietanza, TipiPietanze.Ordine, 
Pietanze.NomePietanza, statistica_Pietanze.SommaDitot_prezzo, 
statistica_Pietanze.SommaDiNumPietanza, statistica_Pietanze.DataOrdine, 
statistica_Pietanze.IdTipoCliente, Pietanze.PietanzaServer, 
Pietanze.NomePietanzaBreve, TipiPietanze.TipoPietanza
FROM (TipiPietanze INNER JOIN Pietanze ON TipiPietanze.IdTipoPietanza = 
Pietanze.IdTipoPietanza) LEFT JOIN statistica_Pietanze ON 
Pietanze.IdPietanza = statistica_Pietanze.IdPietanza
WHERE (((statistica_Pietanze.DataOrdine) Between 
[Forms]![Lancio_statistica]![data_Iniziale] And 
[Forms]![Lancio_statistica]![Data_finale]) AND 
((statistica_Pietanze.IdTipoCliente)=1) AND ((Pietanze.PietanzaServer)=-1)) 
OR (((statistica_Pietanze.IdTipoCliente)=3)) OR 
(((statistica_Pietanze.IdTipoCliente)=4))
ORDER BY TipiPietanze.Ordine, statistica_Pietanze.DataOrdine, 
TipiPietanze.TipoPietanza;
Fine Codice
nella tabella il campo  DataOrdine � in formato data in cifre
Sicuramente non passo la data iniziale e quella finale della inputbox nel 
formato giusto,ma non riesco a capire come fare.
SE qualcuno me lo pu� spiegare lo ringrazio.
Maurizio 

 ha scritto nel messaggio 
news:4a9af57d$0$6152$4faf...@reader5.news.tin.it...

Credo che dovresti scrivere le date nella forma mese-giorno-anno. Prova a 
trasferire le date in altri due controlli e trasformarle in questo modo ed 
utilizza questi nuovi controlli nella query.
Ciao
Antonio

Maurizio M ha scritto:

Hai sbagliato di concatenare gli AND e gli OR con le parentesi. Cos�
valuta il criterio sulle date solo per IdTipoCliente 1, mentre per
IdTipoCliente 3 o 4 estrae tutti i record senza considerarle.
Rivedi i criteri.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Buonasera a tutti,
su suggerimento di Marco Pizzamiglio ho modificato la query in questo modo:
inizio codice
SELECT TipiPietanze.TipoPietanza AS tipopietanza, TipiPietanze.Ordine, 
Pietanze.NomePietanza, statistica_Pietanze.SommaDitot_prezzo, 
statistica_Pietanze.SommaDiNumPietanza, statistica_Pietanze.DataOrdine, 
statistica_Pietanze.IdTipoCliente, Pietanze.PietanzaServer, 
Pietanze.NomePietanzaBreve, TipiPietanze.TipoPietanza
FROM (TipiPietanze INNER JOIN Pietanze ON TipiPietanze.IdTipoPietanza = 
Pietanze.IdTipoPietanza) LEFT JOIN statistica_Pietanze ON 
Pietanze.IdPietanza = statistica_Pietanze.IdPietanza
WHERE (((statistica_Pietanze.DataOrdine) Between 
[Forms]![Lancio_statistica]![data_Iniziale] And 
[Forms]![Lancio_statistica]![Data_finale]) AND 
((Pietanze.PietanzaServer)=-1)) OR (((statistica_Pietanze.IdTipoCliente)=1)) 
OR (((statistica_Pietanze.IdTipoCliente)=3)) OR 
(((statistica_Pietanze.IdTipoCliente)=4))
ORDER BY TipiPietanze.Ordine, statistica_Pietanze.DataOrdine, 
TipiPietanze.TipoPietanza;
Fine codice
ma mi restituisce comunque anche i risultati del giorno 30/06/2009 pur 
avendo dato come data iniziale e finale 26/08/2009
Qualche altro consiglio su come risolvere ?
Grazie ancora
Maurizio 

Maurizio M ha scritto:

Ancora peggio. Cos� mostra tutti i record anche dell'IdTipoCliente 1 senza
considerare le date.
Prova questo criterio:
WHERE (DataOrdine Between 
[Forms]![Lancio_statistica]![data_Iniziale] And 
[Forms]![Lancio_statistica]![Data_finale]) AND 
PietanzaServer=-1 AND (IdTipoCliente=1 
OR IdTipoCliente=3 OR IdTipoCliente=4)


Cut
Funsiona,Funsiona.....
Grazie di cuore Marco
Maurizio