1,216
社区成员
发帖
与我相关
我的任务
分享
Private Sub Form_Load()
…………
Dim xNode As Node
'初始化一个顶级祖宗龟节点
Set xNode = TreeView1.Nodes.Add
xNode.Text = "龟"
xNode.Key = "龟"
Set xNode = Nothing
'查一级节点
Set rs = New ADODB.Recordset
rs.Open "select * from 表 where upid=0", conn, adOpenKeyset, adLockReadOnly
While Not rs.EOF
'显然这里添加的是龟儿子节点咯
Set xNode = TreeView1.Nodes.Add("龟", tvwChild)
xNode.Text = rs.Fields("bm")
xNode.Key = "n" & rs.Fields("id")
Set xNode = Nothing
'检查一下是否有龟孙子节点,如果有龟孙子节点,别管龟孙子是谁添加一个临时节点先,目的当然是显示龟儿子前面的+号咯
Set rs1 = New ADODB.Recordset
rs1.Open "select count(1) as c from 表 where upid=" & rs.Fields("id") , conn, adOpenKeyset, adLockReadOnly
If rs1.Fields(0) <> 0 Then
Set xNode = TreeView1.Nodes.Add("n" & rs.Fields("id"), tvwChild)
xNode.Text = "子节点"
xNode.Key = "n" & rs.Fields("id") & "tmp"
End If
Set rs1 = Nothing
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
End Sub
Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
'检查一下点的是不是龟祖宗,如果点击的不是龟后代就不处理
If Node.Key = "龟" Then Exit Sub
Dim xNode As Node
'先把冒充龟孙子的临时节点删掉
TreeView1.Nodes.Remove (Node.Key & "tmp")‘’‘这里出现第一个报错’
'查询真正的龟孙子节点
Set rs = New ADODB.Recordset
rs.Open "select * from 表 where upid=" & Replace(Node.Key, "n", ""), conn, adOpenKeyset, adLockReadOnly
While Not rs.EOF
Set xNode = TreeView1.Nodes.Add(Node.Key, tvwChild)‘’这里应该是第2个问题
xNode.Text = rs.Fields("bm")
xNode.Key = "n" & rs.Fields("id")
Set xNode = Nothing
'检查一下龟孙子还有没有儿子,有的话再加个临时节点,目的当然也是为了前面的+号咯
Set rs1 = New ADODB.Recordset
rs1.Open "select count(1) as c from 表 where upid=" & rs.Fields("id") , conn, adOpenKeyset, adLockReadOnly
If rs1.Fields(0) <> 0 Then
Set xNode = TreeView1.Nodes.Add("n" & rs.Fields("id"), tvwChild)
xNode.Text = "子节点"
xNode.Key = "n" & rs.Fields("id") & "tmp"
End If
Set rs1 = Nothing
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
End Sub