有一表test,结构如下:
F1         F2           F3          F4          F5
001        大学        计算机系      教研室1     98班
002        大学        计算机系      教研室1     99班
003        大学        计算机系      教研室2     98班005       大学        机械系      教研室1     98班
006       大学        机械系      教研室1     99班
007       大学        机械系      教研室2     98班就是一所大学有许多系,每个系有许多教研室,每个教研室下有许多班级。
数据库结构不能改了。
怎样把这个结构初始化到treeview控件中?树状结构为:大学
    计算机系
         教研室1
              98班
              99班
         教研室2     
              98班
    机械系         教研室1
              98班
              99班
         教研室2     
              98班

解决方案 »

  1.   

    这个最简单了呀 给你段代码你修改修改 Dim r As New ADODB.Recordset
    Dim S1 As String
    Dim S2 As String
    Dim s As String
    Dim i As Integer
    Dim t As Integer
    Dim o As Integer
    Dim mNODE As Node
    TreeView1.Nodes.Clear
    r.Open "select * from buyers where id='" & Zb & "' order by region,country", cN
    Do While Not r.EOF
        If S1 <> Trim(r!region) Then
            S1 = Trim(r!region)
            Set mNODE = TreeView1.Nodes.Add()
                mNODE.Text = Trim(S1)
                mNODE.Image = 2
                mNODE.ExpandedImage = 1
                mNODE.Expanded = True
                i = mNODE.Index
        End If
        If S2 <> Trim(r!country) Then
            S2 = Trim(r!country)
            Set mNODE = TreeView1.Nodes.Add(i, tvwChild)
                mNODE.Text = Trim(S2)
                mNODE.Image = 2
                mNODE.ExpandedImage = 1
                t = mNODE.Index
        End If
        s = ""
        For o = 1 To r.Fields.Count
            s = s & Trim(r.Fields(o - 1).Name) & "/:/" & Trim(r.Fields(o - 1).Value) & vbCrLf
        Next
            
            Set mNODE = TreeView1.Nodes.Add(t, tvwChild)
                mNODE.Text = Trim(r!buyer)
                mNODE.Key = "r" & Trim(r!buyerno)
                mNODE.Tag = s
                mNODE.Image = 3
                r.MoveNext
    Loop
    r.Close
      

  2.   

    哈哈。我看错了,没问题了。
    这段代码的作用是?
    s = ""
        For o = 1 To r.Fields.Count
            s = s & Trim(r.Fields(o - 1).Name) & "/:/" & Trim(r.Fields(o - 1).Value) & vbCrLf
        Next
      

  3.   

    写了一段
    引用引用ms activex data object 2.6 library
    Dim nddata As Node
    Dim cnn As ADODB.Connection
    Dim rs1 As New ADODB.RecordsetPrivate Sub Command2_Click()
    On Error Resume NextSet nddata = TreeView1.Nodes.Add(, , "db", "大学")
    nddata.Expanded = TrueDim intcount As Integer
    Dim inttable As Integer
    Dim intfield As Integer
    Dim intfn As Integer
    Dim mtable, fld
    Dim ca As String
    Dim fa As String
    Dim ma As Stringrs1.Open "select * from test", cnn, 1, 3
    inttable = rs1.RecordCountDo While Not rs1.EOF
            If ca <> rs1.Fields("f3") Then
            Set nddata = TreeView1.Nodes.Add("db", tvwChild, "F" & rs1.Fields("f3"), rs1.Fields("f3"))
            ca = rs1.Fields("f3")
            End If
            
            If fa <> rs1.Fields("f4") Then
            Set nddata = TreeView1.Nodes.Add("F" & rs1.Fields("f3"), tvwChild, "F" & rs1.Fields("f3") & "S" & rs1.Fields("f4"), rs1.Fields("f4"))
            fa = rs1.Fields("f4")
            End If
            
            If ma <> rs1.Fields("f5") Then
            Set nddata = TreeView1.Nodes.Add("F" & rs1.Fields("f3") & "S" & rs1.Fields("f4"), tvwChild, "F" & rs1.Fields("f3") & "S" & rs1.Fields("f4") & "M" & rs1.Fields("f5"), rs1.Fields("f5"))
            ma = rs1.Fields("f5")
            End If
            
        rs1.MoveNext
    Loop
    rs1.Close
    End SubPrivate Sub Form_Load()
    Set cnn = New ADODB.Connection
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\csdn_vb\database\treeview的节点添加\2\article.mdb"End SubPrivate Sub Form_Unload(Cancel As Integer)
    Set con = Nothing
    End Sub