codice:
id | Nome | id_figlio (indica di chi è figlio)
id_figlio è una chiave esterna che si riferisce all'id (quindi alla tabella stessa).
per recuperare la struttura dell'albero devi farti PER FORZA una FUNZIONE ricorsiva, es.:
codice:
' la funzione recupera (l'argomento è un'id) tutti i figli
'di quell'id e a sua volta discendenti dei discendenti,
'dato che è ricorsiva (provare per capire)
Function getTree(id)
rsGetTree.Open("select * from tabella WHERE id_figlio =" & id)
while NOT rsGetTree.EOF
getTree(rsGetTree.("id"))
wend
rsGetTree.close
End Function
' ciclo tutti i capostipiti
rs.Open("select * from tabella WHERE id_figlio = 0")
while NOT rs.EOF
getTree(rs.("id"))
wend
rs.Close
i capistipite, cioè coloro che non sono figli di nessuno (non perchè siano figli di mignotta, ma perchè non è possibile stabilire la discendenza, DEVONO avere id_figlio = 0)
spero che il codice sia grossomodo giusto, se decidi di provare e hai problemi sono qui.