Newsgroup: it.comp.appl.access
Titolo: Problema con oggetto TreeView

Ciao a tutti, ho un problema con una struttura TreeView collegata a delle 
tabelle,
in poche parole vorrei crearmi una struttura così composta:
1° Nodo Numero Pratica
   |
   |___ 2° Nodo Immobili  (al numero pratica sono collegati n appartamenti)
     |
     |
     |_____ 3° Nodo Proprietari (ad ogni immobile sono collegati n 
proprietari)
 e così via...
ho provato con il codice sotto riportato e fino al secondo nodo mi funziona, 
arrivato al terzo mi
torna l'errore "Impossibile trovare l'elemento"
Public Function Attiva()
Dim rs As Recordset
Dim mstr As String, mstr1 As String
TreeView0.Nodes.Clear
    'Apre la tabella  e ordina in base alla chiave
    Set db = CurrentDb
Set rs = db.OpenRecordset("select * from [Pratiche] where [ID pratica] = 
2997")
With rs
    If .BOF And .EOF Then GoTo Fine
    mstr = (![numero pratica] & "") & "   Intestatari: " & (![intestazione 
pratica])
    Set NODO = TreeView0.Nodes.Add(, 0, "A", mstr)
    NODO.EnsureVisible
End With
    '2
Set rs = db.OpenRecordset("select * from [Immobili] where [ID pratica]= 
2997" & " order by [ID Immobile];")
With rs
    If .BOF And .EOF Then GoTo Fine
    Do Until .EOF
        Select Case !venduto
            Case "S"
                mstr1 = "Abitata  "
            Case "N"
                mstr1 = "Non Abitata   "
        End Select
        mstr1 = mstr1 & ![Immobile] & "   " & ![Ubicazione Unità]
        If !Immobile & "" > "" Then mstr1 = mstr1 & " " & !Immobile
        If (![Ubicazione Unità]) = 0 Then
            mstr1 = mstr1 & "   *** NULLO ***"
        Else
            mstr1 = mstr1 & "   Ubicazione: " & ![Ubicazione Unità]
        End If
        Set NODO = TreeView0.Nodes.Add("A", tvwChild, "B" & ![ID immobile], 
mstr1)
        NODO.EnsureVisible
        .MoveNext
    Loop
End With
    '3
Set rs = db.OpenRecordset("select * from [Proprietari] where [id pratica]= 
2997" & " order by [id proprietario];")
With rs
    If .BOF And .EOF Then GoTo Fine
    Do Until .EOF
        mstr = ![ID Cross]
        Set NODO = TreeView0.Nodes.Add("B" & mstr, tvwChild,"C" & mstr, 
mstr1)
        NODO.EnsureVisible
        .MoveNext
    Loop
End With
Fine:
rs.Close
If wNodo = 0 Or wNodo > TreeView0.Nodes.Count Then wNodo = 1
Set TreeView0.SelectedItem = TreeView0.Nodes(wNodo)
End Function
dove sbaglio?
Il modo da me usato per popolare il Treeview collegato alle tabelle è 
corretto o esista una sintassi più
semplice?
Grazie Tommy

 Grazie Tommy
Ciao,
Mat.

Potone ha scritto:

quindi come faccio a legarmi al nodo B& mstr, che devo scrivere prima?
Tommy

Potone ha scritto:


 Mat.
quindi come faccio a legarmi al nodo B& mstr, che devo scrivere prima?
Tommy
Nel codice che hai riportato mstr = ![ID Cross], se mettessi mstr=![ID immobile] (sempre che ID immobile sia presente nella tabella
proprietari) avresti risolto il problema.
Mat.

ho provato a fare come hai detto tu, ma non funziona lo stesso, mi
potresti spiegare in poch parole il criterio da seguire per creare i
vari sotto-nodi?

 vari sotto-nodi?
Come hai fatto a scrivere tutto quel popò di codice se non conosci il criterio con cui creare i nodi?
Comunque, in generale, quando crei un nuovo nodo puoi associarlo ad un nodo già presente specificando la chiave che lo identifica.
Nel tuo caso ogni nodo di terzo livello (proprietari) dovrà essere associato al relativo nodo di secondo livello (immobile).
Creando un nodo immobile lo chiami "B" & IDImmobile (p.e. B999): per ogni proprietario di quel dato immobile creerai un nodo legato
a B999.
Quando scorri l'elenco dei proprietari dovrai anche conoscere IDImmobile in modo da fare la giusta associazione
Immobile->proprietario, se nella tabella proprietari IDimmobile non è presente potrai ricavarlo con una stringa sql anzichè scorrere
semplicemente la tabella.
Ciao,
Mat.

non funziona, perchè mi da sempre lo stesso errore "Impossibile
trovare l'elemento"
.. il codice l'ho copiato da una demo, io non ho mai lavorato con i
Nodi,
provo ora a guardare bene se è un problema di associazione tra le
tabelle, nel frattempo non è che avresti qualche esempio pratico
da postarmi in modo da farmi il confronto e capire meglio come
funzionano i vari nodi?
Te ne sarei grato.
Ciao
Tommy

 ha scritto nel messaggio news:1137431425.2...@f14g2000cwb.googlegroups.com...
non funziona, perchè mi da sempre lo stesso errore "Impossibile
trovare l'elemento"
Il perchè del messaggio l'ho spiegato nei messaggi precedenti
.. il codice l'ho copiato da una demo, io non ho mai lavorato con i
Nodi,
provo ora a guardare bene se è un problema di associazione tra le
tabelle, nel frattempo non è che avresti qualche esempio pratico
da postarmi in modo da farmi il confronto e capire meglio come
funzionano i vari nodi?
Te ne sarei grato.
http://www.donkarl.com/it/
clicca sulla sezione "cisa"
poi su download trovi una guida interessante di Michele DeNittis sui controlli treewiew.
Ciao
Mat.
Ciao
Tommy