Newsgroup: it.comp.appl.access
Titolo: query estrazione date

Salve
Volevo sapere come fare una query che, partendo da un
intervallo di date (per esempio, dal 9 ottobre 2003
al 26 ottobre 2003) mi tira fuori tutte le date comprese
in questo intervallo che sono di martedě, di giovedě e di
sabato oppure di altri giorni.
Io ci sono riuscito in VBA ma, dovendo tirare fuori questi
dati per l'origine record di una maschera, deve essere
per forza un' istruzione SQL (o no?)
esempio per rendere + chiaro il concetto:
intervallo: dal 18 ottobre 2003 al 23 ottobre 2003
giorni da estrarre: lunedě e mercoledě
Intervallo:                                   Query:
18/10/2003 (sabato)------!
19/10/2003 (domenica)----!
20/10/2003 (lunedě)-------------------------> 20/10/2003
21/10/2003 (martedě)-----!
22/10/2003 (mercoledě)----------------------> 22/10/2003
23/10/2003 (giovedě)-----!
Grazie dell'aiuto
Riccardo

 Riccardo
Se la tabella che contiene i dati si chiama Tabella1 ed il campo di tipo
Data/ora che contiene la data da selezionare si chiama MiaData, prova con
una query che abbia il seguente codice SQL:
SELECT Tabella1.*
FROM Tabella1
WHERE (((Tabella1.MiaData) Between #10/18/2003# And #10/23/2003#) AND
((Weekday([MiaData])) = 2 Or (Weekday([MiaData])) = 4));
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ho la tabella dei clienti che contiene il nome del cliente
e 5 campi tipo vero/falso per i giorni dal lunedi' al venerdi'
-nome cliente = testo
-lu  = vero/falso
-ma  = vero/falso
-me  = vero/falso
-gio = vero/falso
-ve  = vero/falso
cioe' i giorni che bisogna consegnare ai clienti: quindi se
il cliente coccobillo ha il lu, il me e il ve a 1, se dal form
ho 2 campi con le date "dal" e "al" al 18/10/2003 e 23/10/2003
nel form bisogna visualizzare:
20/10/2003: consegnare a coccobillo
22/20/2003: consegnare a coccobillo
Penso che non si possa fare in quanto se il recordsource deve essere
una tabella o query, per la selezione bisogna partire dalle date e non
dall' elenco clienti.
Mi sa che mi devo prima creare una tabella "al volo" con i giorni
compresi nelle due date, e poi fare la query confrontando le tabelle
"giorni" e "clienti"
comunque grz dell'aiuto
ciao
riccardo

 riccardo
-- 



La maschera e' in visualizzazione maschere continue.
Deve visualizzare SOLO le date con delle consegne, ad esempio
25-10-2003  consegnare a coccobillo
25-10-2003  consegnare a topolino
25-10-2003  consegnare a yoghi
26-10-2003  consegnare a coccobillo
26-10-2003  consegnare a topolino
28-10-2003  consegnare a coccobillo
28-10-2003  consegnare a yoghi
28-10-2003  consegnare a magilla
29-10-2003  consegnare a topolino
le date senza consegne non devono essere visualizzate
ciao
riccardo

 ha scritto nel messaggio
news:bmdqfj$gr6f4$1...@ID-168793.news.uni-berlin.de...

Se questa è la tua esigenza, a mio avviso la cosa migliore e più flessibile
da gestire è quella di creare una tabella d'appoggio nella quale registrare
un record per ogni nominativo al quale in una determinata data si può
consegnare la merce, quindi visualizzare in una maschera continua tale
tabella.
Se il periodo fosse però composto da un numero massimo definito di giornate
(ad esempio al massimo 5 giornate), si potrebbe fare a meno di creare e
popolare la tabella di appoggio. In una maschera non associata bisognerebbe
inserire cinque caselle di testo non associate nelle quali visualizzare le
giornate di consegna (max 5); ad ognuna di queste caselle combinate
affiancare una casella di testo non associata più grande nella quale
inserire, scanditi da una virgola, i nominativi dei clienti per i quali è
possibile consegnare la merce in quel giorno: di fatto, con un ciclo For ...
Next, la tabella clienti andrebbe spazzolata tante volte quante sono le date
di consegna contenute nel periodo (max 5 giornate) per rilevare, ogni volta,
i nominativi ai quali si può consegnare nel giorno della settimana che
coincide con il giorno della settimana di quella data.



Purtoppo il lasso di tempo puo' essere 1 giorno come 1 anno e l'unico modo
abbastanza "veloce" che sono riuscito ad attuare (che peraltro funziona
benissimo) e' stato quello di generare al volo una tabella con un campo
data e popolarlo con un loop dei giorni compresi tra la data "dal" e
la data "al", dopodiche' con una query confronto il weekday di ogni giorno
con la casella vero/falso dei giorni della settimana di consegna di
ogni cliente.
Come al solito le cose si possono fare in 1000 modi, ognuno piu' (il mio :)
o meno cervellotico..... grazie 10000 del tuo aiuto e buona giornata.
riccardo