Newsgroup: it.comp.appl.access
Titolo: Trasformare una relazione PADRE-FIGLIO ricorsiva in una relazione  linerare (VBA o SQL?)

Un suggerimento per qualche riga di codice VBA o un istruzione SQL per
"declicare" una relazione PADRE-FIGLIO ricorsiva memorizzata in
tabella in una relazione più leggilile ed ordinata, lineare.
In pratica… avrei una tabella con delle informazioni di relazione
PADRE-FIGLIO (+campo di ordinamento) del genere:
Campo1	Campo2	Descrizione	Ordine
1	        0               Libro		         1
21	        1               Sezione Y	         2
22	        1               Sezione X	         1
23	        1               Sezione Z	         3
31	        21             Capitolo B	         2
32	        21             Capitolo A	         1
33	        22             Capitolo A	         1
36	        23             Capitolo C	         1
dove nel Campo 2 vengono messi i riferimenti del campo 1 per ottenere
il "padre" e nel campo Ordine vengono messi i numeri per ordinare
eventuali figli al medesimo livello.
e... data questa tabella... Vorrei ottenere, in automatico, un
qualcosa del genere:
| Libro
| |- Sezione X
| | |- Capitolo A
| | |- Capitolo B
| |- Sezione Y
| | |- Capitolo A
| |- Sezione Z
| | |- Capitolo C
Qualche illuminante suggerimento?
grazie... MARCO

 ha scritto nel messaggio 
news:da81522e-ff87-4245...@o13g2000vbl.googlegroups.com...
Un suggerimento per qualche riga di codice VBA o un istruzione SQL per
"declicare" una relazione PADRE-FIGLIO ricorsiva memorizzata in
tabella in una relazione pi� leggilile ed ordinata, lineare.






--------------------------------------------------
Io rifarei la struttura delle tabelle.
Tabella Libro con Nome, Autore, descrizione, ISBN, ecc.
Tabella Sezioni con IDLibro e IDSezione
Tabella Capitoli con IDLibro, IDSezione e IDCapitolo
Aggiungerei inoltre una tabella Autori e/o Editori
Ciao, Carlo

 tabella in una relazione più leggilile ed ordinata, lineare.

Grazie Carlo del suggerimento,
 ma purtroppo, non posso... il DB è strutturato in quel modo e posso
solo interrogarlo...
altre idee? grazieee
Ciao, Marco


Se metti nella tabella un campo che identifica il livello di rientro e
gli metti un numero livello 1 - 2 - 3 ecc..
con un iif o con una funzione apposita controlli il livello e
concateni il numero di "|" tipo:
se livello 1 allora concateni 1 volta la " | " al testo e via di
seguito.
Rispettando l'ordinamento avrai una visione ad albero più chiara.
Sono un attimo di corsa se hai bisogno riposta che ti posto l'esempio.


Ok... grazie per il suggerimento... così potrei risolvere il problema
di visualizzazione...
MA MI RESTA il problema di come ordinare correttamente i vari record
secondo la relazione padre-figlio..
in breve... non è detto che i record siano ordinati...
esempio:
Campo1 Campo2 Descrizione Ordine
1         0               Libro          1
21         1               Sezione Y          2
32         21             Capitolo A          1
22         1               Sezione X          1
36         23             Capitolo C          1
23         1               Sezione Z          3
31         21             Capitolo B          2
33         22             Capitolo A          1
occorre quindi creare una procedura che mi vada ricorsivamente a
ordinare la relazione padre-figlio e poi l'ordine all'interno dei
figli...? come fare?
grazie di ogni suggerimento...
marco


HO RISOLTOOOO... con un bel "Microsoft Treeview" Activex Control >>>
fa tutto lui... sfruttando la relazione padre-figlio !!!
Fantastico... forse molto lo conoscevano già...
ma io l'ho scoperto (purtroppo) solo ora (in caso di necessità!)
Una bella guida a 6 puntate, la trovate qua:
http://mymsaccessblog.blogspot.com/2008/02/my-treeview-project-episode-1-hello.html
spero che possa essere utile ad altri...
ciao a tutti, Marco