Jag försöker att gå runt mitt problem med följande. <code></code> Tyvärr, men det var ett gott försök. Jag såg att något av min gamla kod låg kvar i den kod, så jag har rensat det. Hmmm.. Kan det vara så att du inte dubbelklickat på dem? Kanonsnyggt. Tack skall du ha.Treeview problem
Jag letar upp datarbaser, som jag fyller upp i FileListbox1.
I en TreeView vill jag lista tabellerna, och fälten.
<code>
Set Rst = Con.OpenSchema(adSchemaColumns)
sCurrentTable = ""
sNewTable = ""
Do Until Rst.EOF
sCurrentTable = Rst!TABLE_NAME
If (sCurrentTable <> sNewTable) Then
sNewTable = Rst!TABLE_NAME
If (Left$(Rst!TABLE_NAME, 4)) <> "MSys" Then
'Debug.Print "Current Table: " & Rst!TABLE_NAME
Set nodX = TreeView1.Nodes.Add(, , , Rst!TABLE_NAME)
End If
End If
'Debug.Print " Field: " & Rst!COLUMN_NAME
Set nodX = Nodes.Add(1, tvwChild, Rst!COLUMN_NAME)
Rst.MoveNext
Loop</code>
Det som händer är att jag får ett fel
"Key is not uniq in collection"
Hur fixar jag det?Sv: Treeview problem
Detta kanske fungerar:
<code>
Dim Nodes as Nodes
Dim FieldNode As Node
Dim TableNode As Node
Set nodX = Nodes.Add(1, tvwChild, Rst!COLUMN_NAME)
Set Rst = Con.OpenSchema(adSchemaColumns)
sCurrentTable = ""
Set Nodes = TreeView1.Nodes
Do Until Rst.EOF
If sCurrentTable <> Rst("TABLE_NAME") Then
Do Until Rst.EOF
sCurrentTable = Rst("TABLE_NAME")
If Left$(sCurrentTable, 4) = "MSys" Then
Rst.MoveNext
Else
Set TableNode = Nodes.Add(, , , sCurrentTable)
Exit Do
End If
Loop
Else
Set FieldNode = Nodes.Add(TableNode.Index, tvwChild, , Rst("COLUMN_NAME"))
Rst.MoveNext
End If
Loop
</code>Sv: Treeview problem
Jag får inget felmedelande, men det visas inga fält.
<code>
Dim FieldNode As Node
Dim TableNode As Node
Set Rst = Con.OpenSchema(adSchemaColumns)
sCurrentTable = ""
Set Nodes = TreeView1.Nodes
Do Until Rst.EOF
If sCurrentTable <> Rst("TABLE_NAME") Then
Do Until Rst.EOF
sCurrentTable = Rst("TABLE_NAME")
If Left$(sCurrentTable, 4) = "MSys" Then
Rst.MoveNext
Else
Set TableNode = Nodes.Add(, , , sCurrentTable)
Exit Do
End If
Loop
Else
Set FieldNode = Nodes.Add(TableNode.Index, tvwChild, , Rst("COLUMN_NAME"))
Rst.MoveNext
End If
Loop
</code>
Vad tror ni???Sv: Treeview problem
Om du har LineStyle = tvwTreeLines. Kommer du inte se något pluss utan måsste dubbelklicka på dem.
Ändra till LineStyle till tvwRootLines. Bör lösa dina problem.
För koden fungerade utmärkt hoss mig. ;o)Sv: Treeview problem
Mäste bara fråga, du visade mig en ganska så häftig sak i går om datatyp och fältstorlek. Hur utnytjar jag den bäst här?
Jag grunna lite på om man skulle kunna göra en funktion av det och hänga på den på noden, går detta?