Hi Chaps
I'm having a real blonde day.
I have a treeview that is arranged like this:
Parent1
Child1
Child2
ChildChild1
ChildChildChild1
The contents are populated dynamically (function attached).
I have no problem adding nodes or children. However, I am having a problem selecting the child's child in order to add the new node (pointer in code)
Any Ideas...?
Function CreateTreeView()
'Create treeview stuff
Dim TVWControl As TreeView
Dim lngRoot As Node
Dim lKey As Long
Dim mySQLFamily As String
Dim myRSTFamily As ADODB.Recordset
Dim mySQLSubFamily As String
Dim myRSTSubFamily As ADODB.Recordset
Dim mySQLProject As String
Dim myRSTProject As ADODB.Recordset
Dim myFamilyID As Long
Dim myFamilyName As String
Dim mySubFamilyID As Long
Dim mySubFamilyName As String
Dim myProjectID As Long
Dim myProjectName As String
Set TVWControl = Me.treeNavView.Object
'clear current nodes
TVWControl.Nodes.Clear
'First, set "fixed" parent
'Home
Set lngRoot = TVWControl.Nodes.Add(, , "Home", "My Home", 4)
'Projects (with recordset to fill in)
Set lngRoot = TVWControl.Nodes.Add(, , "Projects", "Projects", 5)
'Add children
'First Level - Family
mySQLFamily = "SELECT * FROM tblFamily ORDER BY strFamily_Name"
Set myRSTFamily = New ADODB.Recordset
myRSTFamily.Open mySQLFamily, CurrentProject.Connection
Do While Not myRSTFamily.EOF
myFamilyID = myRSTFamily.Fields("lngFam
ily_ID")
myFamilyName = myRSTFamily.Fields("strFam
ily_Name")
'Add Node (FamilyID has to be string now)
lKey = TVWControl.Nodes.Item("Pro
jects").in
dex
TVWControl.Nodes.Add lngRoot.index, tvwChild, Chr(34) & "F" & myFamilyID & Chr(34), myFamilyName, 2
'Now we add this node's children
mySQLSubFamily = "SELECT * FROM tblSubFamily WHERE lngFamily_ID=" & myFamilyID & " ORDER BY strSubFamily_Name"
Set myRSTSubFamily = New ADODB.Recordset
myRSTSubFamily.Open mySQLSubFamily, CurrentProject.Connection
Do While Not myRSTSubFamily.EOF
mySubFamilyID = myRSTSubFamily.Fields("lng
SubFamily_
ID")
mySubFamilyName = myRSTSubFamily.Fields("str
SubFamily_
Name")
'Add node (child of child)
lKey = TVWControl.Nodes.Item(myFa
milyName).
index '<------------------------
----------
----------
-- This line to select child not working
TVWControl.Nodes.Add lngRoot.index, tvwChild, Chr(34) & "S" & mySubFamilyID & Chr(34), mySubFamilyName, 2
myRSTSubFamily.MoveNext
Loop
myRSTSubFamily.Close
Set myRSTSubFamily = Nothing
myRSTFamily.MoveNext
Loop
myRSTFamily.Close
Set myRSTFamily = Nothing
'Fixed stuff again
'Reports
Set lngRoot = TVWControl.Nodes.Add(, , "Reports", "My Reports", 6)
'Admin
Set lngRoot = TVWControl.Nodes.Add(, , "Admin", "System Admin", 1)
'Help
Set lngRoot = TVWControl.Nodes.Add(, , "Help", "Help", 9)
'Log Out
Set lngRoot = TVWControl.Nodes.Add(, , "Exit", "Log Out", 3)
End Function
Start Free Trial