Newsgroup: it.comp.appl.access
Titolo: Maschera filtro per mese/trimestre/semestre/anno (lunghetto)

Ciao e buona domenica a tutti. Come spesso accade, per chi sviluppa
un'applicativo in access senza avere esperienza, una volta ultimata (si
fa per dire) la fase volta ad ottimizzare gli inserimenti, ci si rende
conto che il lavoro non è affatto finito ma che si ha la necessità di
estrapolare i dati inseriti. Io mi trovo in questa fase ed ho la
necessità di far fronte a richieste di statistiche che possono essere
molto varie ed articolate (il mio db è assimilabile ad un archivio di
tipo ospedaliero, quindi ingressi per varie patologie, tutte terapie ed
infine dimissioni).
Ho pensato quindi di crearmi una maschera per poter effettuare tutte le
ricerche possibili ed avevo pensato di strutturarla così: una prima
scelta sul tipo di ricerca da effettuare e cioè, sugli ingressi o
sulle uscite (per gli ingressi ho un campo data mentre le dimissioni
possono avere data uscita o data trasferimento ad altra struttura
sanitaria); la seconda scelta è sul periodo di interesse (come da
oggetto) dove, con un gruppo di opzioni dovrei poter scegliere diverse
alternative. Scegliendo ricerca per mese quindi, rendere visibili due
combo di scelta mese ed anno, oppure trimestre e anno etc (per l'anno,
ovviamente solo l'anno).
In una seconda fase poi vorrei restringere ulteriormente i filtri
riportando tutte le combo della mia maschera di inserimento in quella
di ricerca, mettendo in elenco valori anche la voce "tutti" e lasciando
quest'ultima come valore predefinito all'apertura della maschera (ma
per questo forse sarà appropriato aprire un nuovo 3d).
La maschera di ricerca avrebbe come origine dati la mia tabella
principale e dovrebbe contenere al suo interno una sottomaschera avente
come origine dati la query appropriata a seconda del tipo di ricerca e
del periodo di interesse scelto dall'utente; si dovrebbero quindi poter
visualizzare i record filtrati ed il loro numero.
Ho bisogno della vostra esperienza per organizzare e sviluppare al
meglio il tutto e dei vostri consigli, suggerimenti o links utili su
altri eventuali modi per ottenere quanto mi prefiggo.
Un grazie di cuore a chi vorrà prendersi la briga (anche questa volta)
di aiutarmi, Marco.

 ha scritto nel messaggio 
news:1168783744.4...@l53g2000cwa.googlegroups.com...

Ciao Marco
Per la maschera di ricerca ci sono vari esempi sul sito comune.
Inoltre vedi la faq 2.7, visualizzare tutti i record con una query 
parametrica.
Daniele 

cidi ha scritto:

Ciao daniele e grazie per la tua risposta. Ho provato a scaricare le
maschere di ricerca dal sito comune ma, pur se utilissime, non mi
sembra siano rispondenti alle mie esigenze. Vi sono invece molte faq
che possono aiutarmi in quella che ho chiamato la seconda fase, cioè
quella relativa alle caselle combinate.
La faq che mi hai segnalato è utile per selezionare dei range di date
(cosa che mi sarebbe servita molto in un precedente post e che comunque
ho poi risolto) mentre io avrei bisogno di fare ricerche di questo
tipo: trova quanti pazienti tra quelli entrati nel 2° trim. 2005
avevano tale patologia, sono stati ricoverati in reparto x, sono stati
curati con terapia y e sono stati dimessi con profilassi z.
Ho provato a scaricare anche il db della faq 3.70 (maschera universale
per cercare filtrare ect) ma non mi è di aiuto nel mio caso.
Per ora mi basterebbe capire come posso impostare la query per
selezionare i periodi temporali (di cui all'oggetto).
Un saluto, Marco.

 Daniele
Ciao daniele e grazie per la tua risposta. Ho provato a scaricare le
maschere di ricerca dal sito comune ma, pur se utilissime, non mi
sembra siano rispondenti alle mie esigenze. Vi sono invece molte faq
che possono aiutarmi in quella che ho chiamato la seconda fase, cioè
quella relativa alle caselle combinate.
La faq che mi hai segnalato è utile per selezionare dei range di date
(cosa che mi sarebbe servita molto in un precedente post e che comunque
ho poi risolto) mentre io avrei bisogno di fare ricerche di questo
tipo: trova quanti pazienti tra quelli entrati nel 2° trim. 2005
avevano tale patologia, sono stati ricoverati in reparto x, sono stati
curati con terapia y e sono stati dimessi con profilassi z.
per questo ti ho detto di guardare la query parametrica.
dovresti fare una maschera di ricerca con due caselle di testo non associate
per le date: dal  al
e da tre combo: patologia, reparto,terapia che avranno origine dai 
rispettivi campi
della tabella.
la query avrà tutti campi che ti servono e nei criteri di Patologia, 
reparto, terapia
metti il riferimento alla maschera: Forms!Nomemaschera!nomecombo
Per ora mi basterebbe capire come posso impostare la query per
selezionare i periodi temporali (di cui all'oggetto).
Un saluto, Marco.
Ciao Marco
inserisci nella query un campo calcolato tipo:
Mese: Format([TuaData];"mmmm")
Trimestre: Format([TuaData];"q")
guarda l'help per la formattazione delle date.
Daniele

cidi ha scritto:

Ciao Daniele, ti ringrazio per i suggerimenti ma sto provando un'altra
strada. La faq. 3.73 di Roberto dal sito comune "Sincronizzare in una
maschera due o più caselle combinate tra loro NON in gerarchia" è
perfetta per i miei scopi e vorrei quindi sviluppare la mia maschera di
ricerca basandomi su questo modello.
Sono riuscito a inserire nuovi campi di ricerca e funziona tutto
benissimo. Resta ancora lo scoglio del filtro a monte per mese/anno,
trimestre/anno, semestre/anno o anno.
La domanda è: esiste un modo per modificare la Query dalla faq:
SELECT tblAnagrafe.*
FROM tblAnagrafe
WHERE (((tblAnagrafe.Cognome) Like
Nz([Forms]![MiaMaschera]![CercaCognome],"*")) AND ((tblAnagrafe.Nome)
Like Nz([Forms]![MiaMaschera]![CercaNome],"*")) AND
((Nz([Città],"zzzzzzzz")) Like
Nz([Forms]![MiaMaschera]![CercaCittà],"*")));
inserendo anche un campo data e raggruppando le date a seconda delle
esigenze suesposte?
Sarebbe perfetto, potrei filtrare il periodo temporale che mi interessa
e poi continuare impostando gli altri filtri.
Un grazie di cuore a chi vorrà aiutarmi.

 > Daniele
Ciao Daniele, ti ringrazio per i suggerimenti ma sto provando un'altra
strada. La faq. 3.73 di Roberto dal sito comune "Sincronizzare in una
maschera due o più caselle combinate tra loro NON in gerarchia" è
perfetta per i miei scopi e vorrei quindi sviluppare la mia maschera di
ricerca basandomi su questo modello.
Sono riuscito a inserire nuovi campi di ricerca e funziona tutto
benissimo. Resta ancora lo scoglio del filtro a monte per mese/anno,
trimestre/anno, semestre/anno o anno.
La domanda è: esiste un modo per modificare la Query dalla faq:
SELECT tblAnagrafe.*
FROM tblAnagrafe
WHERE (((tblAnagrafe.Cognome) Like
Nz([Forms]![MiaMaschera]![CercaCognome],"*")) AND ((tblAnagrafe.Nome)
Like Nz([Forms]![MiaMaschera]![CercaNome],"*")) AND
((Nz([Città],"zzzzzzzz")) Like
Nz([Forms]![MiaMaschera]![CercaCittà],"*")));
inserendo anche un campo data e raggruppando le date a seconda delle
esigenze suesposte?
Sarebbe perfetto, potrei filtrare il periodo temporale che mi interessa
e poi continuare impostando gli altri filtri.
Un grazie di cuore a chi vorrà aiutarmi.
Ciao Marco
a quanto pare non hai seguito il mio primo consiglio... :-)
vai a vedere la 2.7 di Federico Luciani ci trovi l'esempio con le date.
che puoi facilmente modificare per adattarlo alle tue esigenze.
se non riesci riposta.
Daniele


Ho seguito il tuo consiglio, è stata la prima cosa che ho fatto! Il
fatto è che non mi sembra adattarsi a ciò che avevo in mente. Non
vorrei avere due campi dove inserire data inizio e data fine, vorrei
avere una combo di selezione ricerca (ricerca per mese/trim etc) che
vada a puntare le diverse query preparate con gli intervalli temporali
e fche mi filtrasse la maschera di conseguenza.
Es: scelgo ricerca per mese, la maschera punta su query mese
raggruppandomi la date per mese e tutti gli altri campi come nella faq
di Roberto, rendo visibili due combo CercaMese e CercaAnno, poi scelgo
agosto 2005, ed i records vengono filtrati per la selezione, poi
restringo ulteriormente i filtri con sempre con l'esempio di Roberto.
E' possibile ottenere una cosa del genere?
Scusami ma (sempre se sono riuscito a spiegarmi bene) non riesco
proprio a capire ciò che mi vuoi dire o ad adattarlo alle mie
esigenze, puoi spiegarmi meglio?

 Daniele
Ho seguito il tuo consiglio, č stata la prima cosa che ho fatto! Il
fatto č che non mi sembra adattarsi a ciň che avevo in mente. Non
vorrei avere due campi dove inserire data inizio e data fine, vorrei
avere una combo di selezione ricerca (ricerca per mese/trim etc) che
vada a puntare le diverse query preparate con gli intervalli temporali
e fche mi filtrasse la maschera di conseguenza.
Es: scelgo ricerca per mese, la maschera punta su query mese
raggruppandomi la date per mese e tutti gli altri campi come nella faq
di Roberto, rendo visibili due combo CercaMese e CercaAnno, poi scelgo
agosto 2005, ed i records vengono filtrati per la selezione, poi
restringo ulteriormente i filtri con sempre con l'esempio di Roberto.
E' possibile ottenere una cosa del genere?
Scusami ma (sempre se sono riuscito a spiegarmi bene) non riesco
proprio a capire ciň che mi vuoi dire o ad adattarlo alle mie
esigenze, puoi spiegarmi meglio?
Ciao Marco
allora? se hai visto l'esempio della faq di Roberto puoi modificarla 
adattandola
alle tue esigenze. guarda la struttura della query e delle combo, aggiungi 
altre combo alla maschera.
se vuoi fare diversamente, puoi inserire nell'intestazione della maschera
le combo che ti servono per selezionare i dati.
poi fai una query di raggruppamento con tutti i campi e  nei criteri
di ognuno fai riferimento alla rispettiva combo della maschera:
Like Nz([Forms]![NomeMaschera]![NomeCombo]; "*")) ecc.
ed avrai la tua selezione anche se una combo non ha dati.
nella query di raggruppamento metti due campi calcolati tipo:
format([tuadataricovero];"mmmm") per i mesi "aaaa" per anno e
"q" per trimestre, guarda l'help per la formattazione delle date.
se vuoi diversificare, assegna ad un pulsante l'apertura di una query
per una selezione particolare.
un pochino di pazienza, fantasia e qualche prova puoi riuscire. :-)
spero ti sia utile
Daniele 

 Daniele
Mi sarà utile sicuramente e proverò a seguire i tuoi consigli. Non
sono ne pazienza, ne fantasia ne dedizione che mi mancano, quello che
mi manca è la frequentazione con SQL.
Ci sto lavorando comunque, e devo ringraziare, oltre a te che mi stai
aiutando, anche chi ha messo i suoi esempi a disposizione di tutti sul
sito comune.
Ti farò sapere gli sviluppi.
Un saluto, Marco.

 Daniele
Non ci riesco! Allora, partendo sempre dall'esempio di Roberto,
aggiungo un campo DataIngr alla tabella dell'esempio, nella query, su
nome campo metto Format([DataIngr];"mmmm") e mi restituisce Espr1.
Nella maschera faccio apparire il campo Espr1 e così, a fianco degli
altri records vedo i mesi in base alle date che ho inserito. Creo una
combo, CercaMese, le do la stessa origine riga delle altre combo
(puntando su Espr1) ed aprendola visualizzo i mesi per i quali vi sono
inserimenti. Vado sul codice e faccio le modifiche opportune con i
requery. Torno sulla maschera, provo ad aprirla e mi chiede i parametri
per ogni combo.
Per favore Daniele, se puoi, fammi un passo a passo, più passo a passo
di quello che mi hai già dato :), ci sto perdendo la salute...

 Daniele
Sono a terra, ho provato a riguardare nell'help come mi hai consigliato
ma come formattazione date mi da la funzione format che non è
specifica per il mio problema (o almeno io non ci capisco molto).
Non riesco più a venirne fuori, sono fuso....

 Daniele
Sono a terra, ho provato a riguardare nell'help come mi hai consigliato
ma come formattazione date mi da la funzione format che non č
specifica per il mio problema (o almeno io non ci capisco molto).
Non riesco piů a venirne fuori, sono fuso....
Ciao Marco
sto preparando un esempio. appena posso te lo mando se l'indirizzo
mail č giusto.
Daniele

 Daniele
Allora, intanto ti ringrazio per il tempo che mi hai dedicato. Ho visto
il tuo esempio (non sarei riuscito ad impostare la query così neanche
in mille anni di tentativi) e volevo chiederti se secondo te era
possibile apportarvi alcune modifiche ed in che modo.
Nella maschera che avevo in mente, la visualizzazione delle date
nell'elenco dei records filtrati non mi servirebbe (e questo non è un
grosso problema) e le combo di selezione mese/anno trimestre/anno etc,
dovrebbero avere come origine riga tutti i 12 mesi, per i mesi, un
elenco di anni (es fino al 2050) per gli anni, per i trim 1°, 2° etc.
Questo per evitare che avendo centinaia di inserimenti in un anno non
mi appaiano una serie infinita ad es di 2006 tutti nell'elenco della
mia combo.
Quindi riassumendo avere: una prima selezione sul tipo di ricerca (per
data ingresso o uscita, che mi cambi l'origine records della maschera
puntando a differenti query aventi tutte la medesima struttura ma campi
data differenti) poi sul periodo di ricerca (per mese/trim etc) di modo
da rendere visibili le combo cercamese e cercaanno, oppure cercatrim e
cercaanno (e qui non so se servirebbero ugualmente differenti queries o
se basterebbe una struttura come quella del tuo esempio).
Poi ci sarebbe da cambiare origine riga a tutte le altre combo a
seconda della query scelta, e questo credo si possa fare da codice,
magari usando i tag (di esempi ce ne sono molti qui sul NG).
Ti sembra realizzabile e/o razionale ed efficace una struttura simile?
Un saluto, Marco.