Newsgroup: it.comp.appl.access
Titolo: Ordinamento giorni settimana

Salve a tutti!
Come faccio ad ordinare i giorni della settimana, ad esempio, come primo
giorno da Lunedì a Domenica, tra un intervallo di data?
Grazie anticipatamente.
Marco.

 ha scritto nel messaggio
news:Yn7uc.365530$rM4.15...@news4.tin.it...

Ciao,
puoi usare la funzione datepart
-------------------
SELECT Tabella.*
FROM Tabella
WHERE Data Between #1/5/2004# AND #1/11/2004#
ORDER BY DatePart("w",[Data],2)
--------------------
Ciao Giorgio

 ha scritto nel
messaggio news:c9b2ga$6ns$1...@lacerta.tiscalinet.it...

Caro Giorgio, purtroppo non funziona. In una query a campi incrociati non
c'è verso di specificare, in una intestazione di colonna, il formato data da
Lunedì a Domenica per un intervallo, ad esempio, di una settimana, in modo
ordinato.
Ad esempio da Lunedi 5 aprile a Domenica 11 aprile, sia con il formato
"Lunedi - 5" oppure "05 - Lunedi", sballa sempre l'ordine dei giorni.
Grazie per l'attenzione.
Marco.


e questo cosa centra con la domanda originale ?
quarda la proprietà *Intestazione colonne* della query a campi incrociati
----------------
PIVOT Format([Data],"dddd") In
("Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica");
---------------
Ciao Giorgio

 ha scritto nel
messaggio news:c9dik6$ts1$1...@lacerta.tiscalinet.it...

Grazie per la tempestiva risposta e, scusami, se sono stato poco chiaro.
In effetti vorrei che in una intestazione colonna, di tipo data, potessi
ottenere, testualmente, Lunedì - 05 oppure Lun - 5 oppure 5- Lunedì oppure
05 - Lun ecc.ecc.
Pensavo che questa "gestione" fosse molto più flessibile ma, almeno io, lo
trovo abbastanza ostico per quanto riguarda la manipolazione di date.
Purtroppo la mia curiosità di "smanettamento" è la mia migliore "strada" per
poter, al meglio, approfondire Access.
Grazie ancora.
Marco.
P.S. - Come "smanetto" nel tuo autorevole suggerimento "PIVOT .....ecc.",
non funge più nulla con altri criteri.

 ha scritto nel messaggio
news:%Nsuc.264062$hc5.11...@news3.tin.it...

weekday? ...

 ha scritto nel messaggio
news:c9enb5$td2$1...@hulme.interac.it...

La funzione WeekDay è già stata provata. A questo punto penso di dover
riformulare il problema:
Ipotizzando una tabella con i campi Nominativo,data, servizio, creo una
query a campi incrociati ove otterrò, per un periodo di data, ad esempio, di
una settimana, cominciando da lunedì a domenica, in modo da avere il
dipendente->intestazione riga; data->intestazione di colonna e il
servizio->valore. Nella colonna della data, vorrei che fosse indicato il
giorno della settimana, da lunedì a domenica, con il giorno in cifre. Es.
Lunedi - 24 oppure Lun - 24 ecc.ecc.
Spero sia stato abbastanza chiaro.
Grazie per la V/s pazienza.
Marco.


Ciao Marco,
non vedo molte strade, in genere la formattazione delle etichette si fa
nelle maschere o nei report e la tua query non può essere facilmente
utilizzata in questi oggetti perchè il nome delle colonne cambia a seconda
dell'interrogazione. Al posto di spendere energie per trovare una soluzione
(non facile)  fai prima a costruire una maschera o un report che abbia come
origine record la query a campi incrociati.
Ciao Giorgio

 ha scritto nel
messaggio news:c9fk28$mqc$1...@lacerta.tiscalinet.it...

E il bello è proprio qui! Se avessi un periodo "stabilito" potrei anche
abbellire, come "look", i risultati magari con una maschera e/o un report
ma....quando il criterio, intervallo di data variabile, proviene da due
controlli da una maschera il problema è molto più grande.
Capisco benissimo che non c'è soluzione. Resta solo da provare un
suggerimento offerto dal sitocomune per quanto riguarda la sezione report
ove, dinamicamente, crea dei reports provenienti da controlli di una
maschera. Forse pure qua sarebbe non facile "formattare" il formato da me
agognato.
Grazie comunque per la gentile attenzione.
Marco.

 ha scritto nel messaggio
news:CaNuc.268311$hc5.11...@news3.tin.it...

Ciao,
se vuoi usare una maschera o un report il problema non esiste proprio, basta
indicare nella query il pivot sul numero del giorno della settimana
-------------------------------
TRANSFORM Sum(Tabell1.Servizio) AS SommaDiServizio
SELECT Tabell1.Nome
FROM Tabell1
GROUP BY Tabell1.Nome
PIVOT DatePart("w",Data,2) In (1,2,3,4,5,6,7);
-------------------------------
in questo modo le colonne saranno sempre 1;2;3;4;5;6;7 quindi puoi associare
7 controlli alle 7 colonne. I 7 controlli avranno 7 etichette che andrai a
compilare via codice VBA come meglio credi (Lun 31 o Lunedì 31 per
l'etichetta del controllo associato al campo 1 e così via)  nell'evento Open
del form o del report a seconda della data di partenza o dell'intervallo del
filtro.
Ciao Giorgio

 ha scritto nel messaggio
news:%Nsuc.264062$hc5.11...@news3.tin.it...

Ho provato in una query a campi incrociati a mettere la seguente cosa nelle
colonne
Format([Data];"gg ggg")
e mi pare funzionare
Ciao Nicola


Ciao Nicola,
se la provi con un intervallo di date che va dal 31/05/04 (lunedě) al
06/06/04 (domenica) vedrai che non č adatta allo scopo, 31 Lunedě viene
messo come ultimo campo.
Ciao Giorgio


Ciao Giorgio,
ho fatto bene ad aggiungere mi pare funzionare ;-)
Azz uso sempre i dati che mi fanno comodo.
Cosi' imparo a rispondere dopo una giornata di lavoro.
Comunque non so ma da codice penso si potrebbe scrivere l'SQL di una query
apposita.
' Richiede DAO
dim  qr as querydef
set qr = dbengine(0)(0).querydefs("NomeQUery")
with qr
    .sql = " select intestazioneriga , "
    datacorrente = datainiziointervallo
    do while datacorrente < = datafineintervallo
        .sql = " , ( select count(cosavogliocontare) from dadove where
[data] = #" & format ("mm/dd/yyyy",datacorrente)
        & "# and ... altrecondizioni   ) as " & format("dd
ddd",datacorrente)
        datacorrente = dateadd("d",1,datacorrente)
    loop
    .sql = " from dadove group by intestazioneriga  "
end with
Docmd.openquery "NomeQuery"
Non ho provato da codice ( che e' anche incompleto ) ma a mano funziona
Inoltre cosi' si avrebbe il vantaggio ( o potrebbe non esserlo) che una data
apparirebbe come intestazione anche se non ci sono dati da contare in quel
giorno.
Ciao Nicola