添加了如下代码:
Public Sub tree_change()                                    '定义添加树状列表函数
Dim key, text, bh As String
Dim nod As Node
Adodc1.RecordSource = "select* from 商品基础信息表 order by 商品编号"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF = False
   If Len(Trim(Adodc1.Recordset.Fields("商品编号"))) = 2 Then
       key = Trim(Adodc1.Recordset.Fields("本级名称"))
       text = "(" & Trim(Adodc1.Recordset.Fields("商品编号")) & ")" & Trim(Adodc1.Recordset.Fields("本级名称"))
       Set node1 = TreeView1.Nodes.Add(, , key, text, 1)
   End If
   If Len(Trim(Adodc1.Recordset.Fields("商品编号"))) = 4 Then
       key = Trim(Adodc1.Recordset.Fields("本级名称"))
       text = "(" & Trim(Adodc1.Recordset.Fields("商品编号")) & ")" & Trim(Adodc1.Recordset.Fields("本级名称"))
       Set node2 = TreeView1.Nodes.Add(node1.Index, tvwChild, key, text, 2)
   End If
   If Len(Trim(Adodc1.Recordset.Fields("商品编号"))) = 7 Then
       key = Trim(Adodc1.Recordset.Fields("本级名称"))
       text = "(" & Trim(Adodc1.Recordset.Fields("商品编号")) & ")" & Trim(Adodc1.Recordset.Fields("本级名称"))
       Set node3 = TreeView1.Nodes.Add(node2.Index, tvwChild, key, text, 3)
   End If
Adodc1.Recordset.MoveNext
Loop
End If
   
End Sub程序运行起来似乎也没有提示出错,但是在treeview的框中没有显示任何东西白白的一片,不明白啊。。

解决方案 »

  1.   

    代码看得头痛1,建议使用ado而非adodc控件
    2,函数声明请用标准式样,Public Sub tree_change()  这样子很可能当成一个事件了
    你可以public sub loadtreedate()这样去声明public sub commnad_click()这相当于command的click事件.3,代码层次非常不清楚,除掉判断,我几乎没看见父层的加入我建议是你先加入你3个判断的父层,然后分别加入子层,treeview是一层层去加入,子层是根据父层的key去确定的,而你的node2.Index这样做为key是代码什么意思,望天=_=
    给你一个参考代码:Public Sub LoadData()
        Dim Node As Node
        Dim i As Integer    With Me.TreeView1
            .Nodes.Clear        '连接第一层总部门
            Set Node = .Nodes.Add(, , "R0", "总部门")
        
            Node.Selected = True        '加载二级部门
            If rs.State <> adStateClosed Then rs.Close
            rs.Open "select BID,Branchone from Branch", Conn, adOpenStatic, adLockOptimistic        For i = 1 To rs.RecordCount
                Set Node = .Nodes.Add("R0", tvwChild, "B" & rs(0), rs("Branchone"))
                rs.MoveNext
                .Nodes(i).Expanded = True
            Next
            rs.Close        '加载三级部门
            rs.Open "select * from VBranch", Conn, adOpenStatic, adLockOptimistic
            For i = 1 To rs.RecordCount
                If rs("Branchone") <> rs("BranchTwo") Then
                    Set Node = .Nodes.Add("B" & rs("BID"), tvwChild, "C" & rs("BranchID"), rs("BranchTwo"))            End If
                .Nodes(i).Expanded = True
                rs.MoveNext
            Next
            rs.Close
        End With
    End Sub