Newsgroup: it.comp.appl.access
Titolo: query a campi incrociati: trasformare colonne della tabella in righe

ciao a tutti.
ho la necessità di organizzare delle scadenze, tutte legate ad un campo data
generato automaticamento all'atto della creazione del record.
la struttura della tabella di origine è la seguente:
id (contatore)
data_visita (campo data)
esito_vis (testo)
scadenza_vis (numerico)
esito_es1 (testo)
scadenza_es1 (numerico)
esito_es2 (testo)
scadenza_es2 (numerico)
esito_es3 (testo)
scadenza_es3 (numerico)
ciascun campo "scadenza_*" accoglie un numero che esprime i mesi di distanza
dalla data data"_visita" dopo i quali ripetere la visita, l'esame1, esame2,
ecc.
il mio proposito è quello di ottenere una query che elenchi in righe
successive le scadenze (dalla più prossima alla più remota) nel modo
seguente:
id    data_scad_vis (record1)
id    data_scad_es2 (record x)
id    data_scad_es2 (record 1)
id    data_scad_es3 (record x)
id    data scad_es1 (record1)
...
sto provando ad editare una query a campi incrociati, la quale funziona bene
se voglio gestire solo la scadenza della visita: le cose però si complicano
quando le scadenze da considerare diventano più di una per record (visita,
esame1, esame2, ..) e si desidera che tutte appaiano in modo sequenziale
(per intenderci vorrei visualizzare i risultati su 1 unica maschera, anzichè
su n)..
avete qualche suggerimento in merito?
grazie per l'aiuto


Ciao, io organizzerei direttamente il db in quel modo.
Non sapendo quante visite ho, le affideri ad una sottomaschera.
Poi la query a campi incrociati la farei dopo (in realtà poi userei una
funzioncina per crearmi una tabella temporanea, ma questo è tutt'altro)
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa1 - I° Conferenza Italiana per Sviluppatori Access Arezzo 4+5
Giugno 2005 Sono aperte le iscrizioni  Info:  
www.donkarl.com/it

 ha scritto nel messaggio
news:3dYie.10930$TR5....@news.edisontel.com...

ciao MA, grazie per il suggerimento innanzitutto!
devi scusarmi, ma non ho capito esattamente quello che vuoi dire col tuo
messaggio: cosa intendi quando parli di affidare le visite ad una
sottomaschera?
la tabella di cui parlavo nel mio primo msg appare già in una sottomaschera
"elenco visite", contenuta in una maschera principale chiamata "sessione di
visita" (relazione 1 a molti). il mio problema è fare in modo che venga
creato un elenco di records, ordinati per data, e queste date sono contenute
in più campi  di una stessa tabella originaria con i campi organizzati in
questo modo (fingi di vederli in orizzontale):
id (contatore)
data_visita (campo data)
esito_vis (testo)
scadenza_vis (numerico)
esito_es1 (testo)
scadenza_es1 (numerico)
esito_es2 (testo)
scadenza_es2 (numerico)
esito_es3 (testo)
scadenza_es3 (numerico)
il mio fine è quello di ottenere un elenco di dati simile a quello riportato
qui sotto:
id | data_scad_vis | (fa capo al record1)
id | data_scad_es2 | (fa capo al record x)
id | data_scad_es2 | (fa capo al record 1)
id | data_scad_es3 | (fa capo al record x)
id | data scad_es1  | (fa capo al record1)
avrebbe forse qualche utilità separare questa tabella in due tabelle
correlate, trasferendo i dati relativi alle date nella nuova tabella??

 correlate, trasferendo i dati relativi alle date nella nuova tabella??
Non ho capito moltissimo quest'ultima cosa


 ha scritto nel messaggio
news:Zy_ie.10979$TR5....@news.edisontel.com...

ale mi spiace ma non riesco a spiegarmi; provo a ripartire con la
spiegazione del mio problema. ho 1 tabella ("visite") dove accolgo i
seguenti dati:
id_dip, campo numerico correlato alla tabella dipendenti
data_creaz, campo data, riempito in automatico all'atto della creazione del
record
referto_visita, campo di testo
mesi_scad_vis, campo numerico (mesi dalla data "data_creaz", momento in cui
ripetere le visita)
referto_es1, campo di testo
mesi_scad_es1, campo numerico (mesi dalla data "data_creaz", momento in cui
ripetere l'esame1)
referto_es2, campo di testo
mesi_scad_es2, campo numerico (mesi dalla data "data_creaz", momento in cui
ripetere l'esame2)
referto_es3, campo di testo
mesi_scad_es3, campo numerico (mesi dalla data "data_creaz", momento in cui
ripetere l'esame3)
...
poi ho la seguente query a campi incrociati ("agenda"), la quale si prefigge
l'unico scopo (per ora) di indicare il giorno di scadenza della visita:
id_dip, raggruppamento, intestaz riga
sesso, raggruppamento, intestaz colonna
data_creaz, ultimo, valore
totale di data_creaz, ultimo, intestaz riga
mesi_scad_vis, raggruppamento, intestaz riga
data_scad_vis: [Totale di data_creaz]+([mesi_scad_vis]*30), espressione,
intestaz riga
questa query mi consente di visualizzare le scadenze per le visite,
(omettendo le visite precedenti all'ultima). una maschera si occupa di
visualizzare i dati nel modo seguente (maschera "agenda_visite"):
id_dip | data_scad_vis | data_creaz | (altri campi..)
ora, il mio scopo è di fare la stessa cosa ANCHE per gli esami (es1, es2,
es3) oltre che per la visita.
a questo punto la prima cosa che ho pensato di fare è stata di creare delle
queries identiche a quella qui sopra, ma questo comporterebbe la necessità
di fare altrettante maschere per visulizzare i dati: io vorrei invece far
apparire tutte la scadenze (visite, es1, es2, es3) in una maschera unica;
questo fatto mi porta al nocciolo della questione:
- modifico la query a campi incrociati esistente? (in che modo?)
- faccio altre queries a campi incrociati analoghi a quella che si occupa
delle visite? (come unisco poi i risultati in modo da farli apparire in una
maschera unica?)
non troppo chiaro, vero? : )