Onestamente sto perdendo la speranza, ammetto non di non essere un programmatore però è paradossale questa situazione.
Si nell'ultimo esempio ho sbadatamente digitato male. Avevo provato a mettere le quadre anche su [Data Ordine] ma dava errore 3464 quindi pensavo fosse giusto senza. Per quanto riguarda invece l'esempio iniziale, confermo che rimosso gli apici dalle chiavi primarie gli errori fin qui descritti si sono risolti MA è uscito (ERRORE DI COMPILAZIONE , variabile non definita) --> ho cancellato Option Explicit --> problema risolto MA
é uscito poi errore 3265 e ho letto qui
https://support.microsoft.com/it-it/help/201826/prb-error-3265-when-you-access-properties-collection, ho aggiunto le due librerie Microsoft ADO Ext. 2.x for DDL and Security and Microsoft ActiveX Data Objects 2.x Library ma si ripresente sempre lo stesso errore a questa linea di codice ---> Set tempNode = TV.Nodes.Add("C", tvwchild, "CL" & rsC.Fields(ID_Azienda), rsC.Fields("Azienda"))
Metto tutta la casistica perchè non so che fare
Mi rifaccio all'esempietto con tre tabella banali. Aziende, Ordini, Fatture. GLi ID sono tutti chiavi primarie.
TREE VIEW CON NOMI AZIENDE
• ID_Azienda ?Set tempNode = tv.Nodes.Add("C", tvwChild, "CL" & rsC.Fields(
ID_Azienda), rsC.Fields("Nome")) -? errore su Private Sub Comando2_Click() ? variabile non definita ? per risolverlo devo eliminare Option Explicit ? a questo punto il treeview si popola con i nome delle aziende
• “ID_Azienda”? ……… rsC.Fields(
“ID_Azienda”)………… ? mantengo Option Explicit e il tree view si popola con i nomi della aziende. Se tolgo Option Explicit il tree view si popola comunque con con i nomi d’azienda
TREE VIEW CON NOMI ORDINI
ERRORE 91 --> tra apici metto gli ID ed elimino Option Explicit --> errore su Do While Not rsO.EOF
Option Compare Database
Private Sub Comando2_Click()
Dim tempNode As MSComctlLib.Node
Dim rsC As DAO.Recordset 'record clienti
Dim rsO As DAO.Recordset 'record ordini
Dim rsF As DAO.Recordset 'record fatture
tv.Nodes.Clear
Set tempNode = tv.Nodes.Add(, , "C", "Azienda")
'CARICO I NOMI DELLE AZIENDE
Set rsC = CurrentDb.OpenRecordset("SELECT ID_Azienda,Nome FROM Azienda ORDER BY Nome", , dbReadOnly)
Do While Not rsC.EOF
Set tempNode = tv.Nodes.Add("C", tvwChild, "CL" & rsC.Fields("ID_Azienda"), rsC.Fields("Nome"))
'CARICO GLI ORDINI
Set rs0 = CurrentDb.OpenRecordset("SELECT ID_Ordine, Ordine FROM Ordine WHERE ID_Azienda=""" & rsC.Fields("ID_Azienda") & """ ORDER BY Ordine DESC", , dbReadOnly)
Do While Not rsO.EOF
Set tempNode = tv.Nodes.Add("CL" & rsC.Fields("ID_Azienda"), tvwChild, "ORD" & rsO.Fields("ID_Ordine"), rsO.Fields("Ordine"))
rsO.MoveNext
Loop
rsO.Close
rsC.MoveNext
Loop
rsC.Close
End Sub
Errore di compilazione variabile non definita --> con ID_.... tra “” --> errore su Private Sub Comando2_Click()
Option Compare Database
Option Explicit
Private Sub Comando2_Click()
Dim tempNode As MSComctlLib.Node
Dim rsC As DAO.Recordset 'record clienti
Dim rsO As DAO.Recordset 'record ordini
Dim rsF As DAO.Recordset 'record fatture
tv.Nodes.Clear
Set tempNode = tv.Nodes.Add(, , "C", "Azienda")
'CARICO I NOMI DELLE AZIENDE
Set rsC = CurrentDb.OpenRecordset("SELECT ID_Azienda,Nome FROM Azienda ORDER BY Nome", , dbReadOnly)
Do While Not rsC.EOF
Set tempNode = tv.Nodes.Add("C", tvwChild, "CL" & rsC.Fields("ID_Azienda"), rsC.Fields("Nome"))
'CARICO GLI ORDINI
Set rs0 = CurrentDb.OpenRecordset("SELECT ID_Ordine, Ordine FROM Ordine WHERE ID_Azienda=""" & rsC.Fields("ID_Azienda") & """ ORDER BY Ordine DESC", , dbReadOnly)
Do While Not rsO.EOF
Set tempNode = tv.Nodes.Add("CL" & rsC.Fields("ID_Azienda"), tvwChild, "ORD" & rsO.Fields("ID_Ordine"), rsO.Fields("Ordine"))
rsO.MoveNext
Loop
rsO.Close
rsC.MoveNext
Loop
rsC.Close
End Sub
Errore di compilazione variabile non definita ? senza “” --> tolgo gli apici come mi è stato detto --> errore su Private Sub Comando2_Click()
Option Compare Database
Option Explicit
Private Sub Comando2_Click()
Dim tempNode As MSComctlLib.Node
Dim rsC As DAO.Recordset 'record clienti
Dim rsO As DAO.Recordset 'record ordini
Dim rsF As DAO.Recordset 'record fatture
tv.Nodes.Clear
Set tempNode = tv.Nodes.Add(, , "C", "Azienda")
'CARICO I NOMI DELLE AZIENDE
Set rsC = CurrentDb.OpenRecordset("SELECT ID_Azienda,Nome FROM Azienda ORDER BY Nome", , dbReadOnly)
Do While Not rsC.EOF
Set tempNode = tv.Nodes.Add("C", tvwChild, "CL" & rsC.Fields(ID_Azienda), rsC.Fields("Nome"))
'CARICO GLI ORDINI
Set rs0 = CurrentDb.OpenRecordset("SELECT ID_Ordine, Ordine FROM Ordine WHERE ID_Azienda=""" & rsC.Fields(ID_Azienda) & """ ORDER BY Ordine DESC", , dbReadOnly)
Do While Not rsO.EOF
Set tempNode = tv.Nodes.Add("CL" & rsC.Fields(ID_Azienda), tvwChild, "ORD" & rsO.Fields(ID_Ordine), rsO.Fields("Ordine"))
rsO.MoveNext
Loop
rsO.Close
rsC.MoveNext
Loop
rsC.Close
End Sub
Errore 3265 --> ID_... senza apici e tolgo Option Explicit --> erorre su Set tempNode = tv.Nodes.Add("C", tvwChild, "CL" & rsC.Fields(ID_Azienda), rsC.Fields("Nome"))
Option Compare Database
Private Sub Comando2_Click()
Dim tempNode As MSComctlLib.Node
Dim rsC As DAO.Recordset 'record clienti
Dim rsO As DAO.Recordset 'record ordini
Dim rsF As DAO.Recordset 'record fatture
tv.Nodes.Clear
Set tempNode = tv.Nodes.Add(, , "C", "Azienda")
'CARICO I NOMI DELLE AZIENDE
Set rsC = CurrentDb.OpenRecordset("SELECT ID_Azienda,Nome FROM Azienda ORDER BY Nome", , dbReadOnly)
Do While Not rsC.EOF
Set tempNode = tv.Nodes.Add("C", tvwChild, "CL" & rsC.Fields(ID_Azienda), rsC.Fields("Nome"))
'CARICO GLI ORDINI
Set rs0 = CurrentDb.OpenRecordset("SELECT ID_Ordine, Ordine FROM Ordine WHERE ID_Azienda=""" & rsC.Fields(ID_Azienda) & """ ORDER BY Ordine DESC", , dbReadOnly)
Do While Not rsO.EOF
Set tempNode = tv.Nodes.Add("CL" & rsC.Fields(ID_Azienda), tvwChild, "ORD" & rsO.Fields(ID_Ordine), rsO.Fields("Ordine"))
rsO.MoveNext
Loop
rsO.Close
rsC.MoveNext
Loop
rsC.Close
End Sub