这是我用数据库初始化TREEVIEW,你可以改一下,很快就可以实现    Dim strDBName As String
   Dim db As Database
   Dim tbCount, i, fdCount, j As Integer
   Dim litm(1 To 13) As String
   Dim nod As Node
     
   Set db = dbengine.opendatabase("d:\vb98\BIBLIO.MDB")
   tbCount = db.TableDefs.Count - 1
   TreeView1.Nodes.Clear
   For i = 0 To tbCount
         fdCount = db.TableDefs(i).Fields.Count
      If Not Left(db.TableDefs(i).Name, 4) = "MSys" Then
         Set nod = TreeView1.Nodes.Add(, , "r" & CStr(i), db.TableDefs(i).Name)
         tbCount = db.TableDefs(i).Fields.Count - 1
         For j = 0 To tbCount
            Set nod = TreeView1.Nodes.Add("r" & CStr(i), tvwChild, , db.TableDefs(i).Fields(j).Name)
         Next j
      End If
   Next i
   db.Close
   Set db = Nothing

解决方案 »

  1.   

    Call trvInfoClass.Nodes.Clear
        Set curRecords = gConnection.Execute("SELECT Title,ID FROM tab_Info_class WHERE Parent_Id='-1'")
        If curRecords.EOF = False Then
        '如果类信息记录集不空,则将现有的类信息标题显示在树型视图中。
        '否则,添加一条信息类根节点记录,ID为"00000000000000000001",Title为"信息集合",Parent_Id为"-1"。
        '并将此信息类根节点显示在树型视图中。
            Set curNode = trvInfoClass.Nodes.Add(, , SJROOTKEY & Trim(CStr(curRecords.Fields("ID"))), Trim(CStr(curRecords.Fields("Title"))), 1, 1)
            Call AddChildNodes(curNode)
            curRecords.Close
        Else
            curRecords.Close
            Set curRecords = New ADODB.Recordset
            Call curRecords.Open("SELECT * FROM tab_Info_class WHERE Parent_Id='-1'", gConnection, adOpenDynamic, adLockPessimistic)
            Call curRecords.AddNew
            curRecords.Fields("ID") = "00000000000000000001"
            curRecords.Fields("Parent_Id") = "-1"
            curRecords.Fields("Title") = "信息集合"
            Call curRecords.Update
            Set curNode = trvInfoClass.Nodes.Add(, , SJROOTKEY & Trim(CStr(curRecords.Fields("ID").Value)), Trim(CStr(curRecords.Fields("Title"))), 1, 1)
            Call curRecords.Close
        End If
    Public Sub AddChildNodes(ByRef rootNode As Node)
    '递归显示树视图。
        Dim curInfoClassRecords As ADODB.Recordset
        Dim curNode As Node
        Set curInfoClassRecords = gConnection.Execute("SELECT Title,ID FROM tab_Info_class WHERE Parent_Id='" & Right(rootNode.Key, Len(rootNode.Key) - 4) & "' and " & CURRENTQUERYCONDITION)
        If curInfoClassRecords.EOF = True Then ' And curInfoCellRecords.EOF = True Then
            curInfoClassRecords.Close
            Exit Sub
        End If
        Do While curInfoClassRecords.EOF = False
            Set curNode = trvInfoClass.Nodes.Add(rootNode, tvwChild, SJINFOCLASSKEY & curInfoClassRecords.Fields("ID").Value, curInfoClassRecords.Fields("Title"), 2, 3)
            Call curInfoClassRecords.MoveNext
            Call AddChildNodes(curNode)
        Loop
        curInfoClassRecords.Close
    End Sub