在数据库里有
体育
    球类
       足球
       篮球
       排球
    游泳
       蛙泳
       蝶泳
项目   上级项目体育  
球类     体育  
足球     球类
篮球     球类
排球     球类
游泳     体育 
蛙泳     游泳 
蝶泳     游泳 
     就是体育是父项!球类是足球的父项,是体育的子项,用递归列出体育下的所有项!包括体育

解决方案 »

  1.   

    Public Sub SetNod(id As String)
    Dim Rd As New ADODB.Recordset
        Rd.Open "select 序号,项目 from 数据表 where and 上级项目=" & id & " order by 序号", Con
            Do Until Rd.EOF
                If id = "" Then
                    TreeView1.Nodes.Add "A", tvwChild, "A" & Rd(0), Rd(1)
                Else
                    TreeView1.Nodes.Add "A" & id, tvwChild, "A" & Rd(0), Rd(1)
                End If
                SetNod Rd("序号")
                Rd.MoveNext
            Loop
        Rd.Close
    Set Rd = Nothing调用时这样:Call SetNod("")你这不合规则嘛,建议不要把体育的上级项目设为空字段,最好有个什么字符表示!我可是下大功夫了,希望可以拿到分儿!
      

  2.   

    刚才一试又差一步,改一下:            End If
                SetNod Rd("上级项目")
                Rd.MoveNext还有SQL查询语句里多了个And,自已删一下吧
      

  3.   

    这里有个例子,与你的要求十分相似
    http://community.csdn.net/Expert/topic/3183/3183074.xml?temp=.7244379