Private Sub Form_Load()
    Dim ClNode As Integer
    Dim nodx As MSComctlLib.Node
    Dim r2 As ADODB.Recordset    Dim r3 As ADODB.Recordset    ClNode = 0
    
   Set r2 = New RecordsetSet nodx = TreeView1.Nodes.Add(, , "X", "全网")  
r2.Open "select area,gw,pa,cs_index,cstype from t_cs_inf ", CN, adOpenDynamic, adLockPessimistic
    For i = 1 To 3
    TreeView1.Nodes.Add "X" & Trim(r2("area")), tvwChild, "X" & Trim(r2("gw")), r2("pa"), r2("cstype")
    r2.MoveNext
    Next i
    
    With TreeView1
        .Nodes(1).Expanded = True
        .Nodes(2).Expanded = True
        .Nodes(3).Expanded = True
        .Nodes(4).Expanded = True
        .Nodes(5).Expanded = True
        .Refresh
    End With
End Sub

解决方案 »

  1.   

    哪一句出错?For i = 1 To 3
        TreeView1.Nodes.Add "X" & Trim(r2("area")), tvwChild, "X" & Trim(r2("gw")), r2("pa"), r2("cstype")
        r2.MoveNext
    Next i最好改为:
    if not r2.BOF and not r2.Eof then
      for i=1 to r2.RecordCount 
      ……
      next
    end  if
      

  2.   

    你这错误应该在这里:
      For i = 1 To 3
        TreeView1.Nodes.Add "X" & Trim(r2("area")), tvwChild, "X" & Trim(r2("gw")), r2("pa"), r2("cstype")
        r2.MoveNext当i=1的时候,for循环里面是:
    TreeView1.Nodes.Add "X" & Trim(r2("area")), tvwChild, "X" & Trim(r2("gw")), r2("pa"), r2("cstype")看你上面的代码,这个时候节点"X" & Trim(r2("area"))并不存在,你想要添加一个节点作为它的子节点,自然是不可能的。似乎你应该改为:
      For i = 1 To 3
        TreeView1.Nodes.Add "X", tvwChild, "X" & Trim(r2("gw")), r2("pa"), r2("cstype")
        r2.MoveNext
    因为节点"X"是已经添加了的。只是猜测,因为不知道你的需求。