Public Sub Add_SonToTree(ByRef mytree As TreeView, parent As String)Dim son As StringDim name As StringDim father As StringDim StrSQL As StringDim node As nodeDim rs As New ADODB.Recordset
StrSQL = "select son ,name from 结点表 where parent=" + Str(parent) + " Order by son"If rs.State = adStateClosed Then        rs.Open StrSQL, DBCON, adOpenKeyset, adLockPessimistic, adCmdText   '//打开记录集
         
         End If
         
Do Until rs.EOF   '读取子结点的编号
    son = rs.Fields(0)
    '读取子结点的名称
    name = rs.Fields(1)
    '添加子结点
    father = "No" & parent
    
    son = "No" & son
    
    Set node = mytree.Nodes.Add(father, tvwChild, son, name)
    
   Call Add_SonToTree(mytree, son)
    
    rs.MoveNext
    
  Loop
         
         
 End Sub 为什么 Set node = mytree.Nodes.Add(father, tvwChild, son, name)
 运行到这里就报错呢,还有就是我想把father和son都不要前面的字符串行吗?
真的很郁闷!

解决方案 »

  1.   

    这里的father必须保证在表中的唯一性,最好是key.
      

  2.   

    '主要看Key的变化以及它们的关系
    Private Sub Form_Load()    Dim i As Integer
        Dim factory As Node
        Dim group As Node
        Dim person As Node
        
        Dim nStep As Integer
        nStep = 1
        For i = 1 To 3
            Set factory = OrgTree.Nodes.Add(, , "NCD" & nStep, "Result1")
            Set group = OrgTree.Nodes.Add(factory, tvwChild, "Charge" & nStep, "Change")
            Set person = OrgTree.Nodes.Add(group, tvwChild, "CAmp" & nStep, "Amp: " & nStep)
            Set person = OrgTree.Nodes.Add(group, tvwChild, "CTime" & nStep, "Time: " & nStep)
            Set group = OrgTree.Nodes.Add(factory, tvwChild, "Discharge" & nStep, "Dischange")
            Set factory = OrgTree.Nodes.Add(, , "THR" & nStep, "Result2")
            Set person = OrgTree.Nodes.Add(group, tvwChild, "DAmp" & nStep, "Amp: " & nStep)
            Set person = OrgTree.Nodes.Add(group, tvwChild, "DTime" & nStep, "Time: " & nStep)
           
            nStep = nStep + 1
        Next i
        
    End Sub
      

  3.   

    问题已经解决,是我的父接点的KEY写错了