我的数据库
班号 届别
41025 2003
41024 2003
43023 2001
我如何在TREEVIEW中显示出来如下面的
1
--2003
   ------41025
   ------41024
--2002
   ------43023
要求届别不能重复~

解决方案 »

  1.   

    Dim nddata As Node
    Dim cnn As ADODB.Connection
    Dim rs1 As New ADODB.Recordset
    Dim rs2 As New ADODB.RecordsetPrivate Sub Command1_Click()
    Set cnn = New ADODB.Connection
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\csdn_vb\database\treeview的节点添加\1\article.mdb"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, fldrs1.Open "select bb from test group by bb", cnn, 1, 3
    inttable = rs1.RecordCountDo While inttable <> intcount
            Set nddata = TreeView1.Nodes.Add("db", tvwChild, "F" & rs1.Fields("bb"), rs1.Fields("bb"))
            rs2.Open "select bh,bb from test where bb='" & rs1.Fields("bb") & "'", cnn, 1, 3
            intfield = rs2.RecordCount
                If intfield <> 0 Then
                    intfn = 0
                        Do While intfield <> intfn
                            Set nddata = TreeView1.Nodes.Add("F" & rs1.Fields("bb"), tvwChild, "S" & rs2.Fields("bh"), rs2.Fields("bh"))
                            rs2.MoveNext
                            intfn = intfn + 1
                        Loop
                End If
                rs2.Close
        rs1.MoveNext
        intcount = intcount + 1
    Loop
    rs1.Close
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Set con = Nothing
    End Sub
      

  2.   

    楼上的代码没有优化    没有必要用那么多查询的 参考我的 医药一个SQL语句就搞定Dim i As Integer
    Dim ax As String
    Dim mNODE As Node
    Dim r As New ADODB.Recordset
    Dim AX1 As String
    Dim AX2 As String
    Dim AX3 As StringSQL = "select * from suppliers  order by PROVINCE,SUPPLIER"
    r.Open SQL, cN
    Do While Not r.EOF
            If AX1 <> Trim(r!province) Then
                Set mNODE = TreeView1.Nodes.Add()
                    mNODE.Text = Trim(r!province)
                    mNODE.Key = mNODE.Text
                    mNODE.Image = 2
                    mNODE.ExpandedImage = 1
                AX1 = Trim(r!province)
            End If        
            
    Set mNODE = TreeView1.Nodes.Add(AX1, tvwChild)
          mNODE.Text = Trim(r!supplier)
          mNODE.Key = "r" & Trim(r!supno)
          mNODE.Image = 3
          mNODE.Tag = r!supno
          mNODE.Image = 3
          mNODE.ExpandedImage = 1
    r.MoveNext
    Loop
    r.Close
      

  3.   

    Option ExplicitPrivate Sub Form_Load()
            Dim Conn As ADODB.Connection
            Dim Rs As ADODB.Recordset
            Dim SQL As String
            
            Set Conn = New ADODB.Connection
            Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aa.mdb"
            Conn.Open
            
            Set Rs = New ADODB.Recordset
            SQL = "Select Distinct 届别 From a"
            Rs.Open SQL, Conn, adOpenKeyset, adLockOptimistic, adCmdText
            If Rs.State <> 0 Then
                   While Not Rs.EOF
                         With Me
                              With .TreeView1
                                   With .Nodes
                                        .Add , , "A_" & Rs("届别").Value, Rs("届别").Value
                                   End With
                              End With
                         End With
                         Rs.MoveNext
                   Wend
            End If
            Rs.Close
            '-----------------------------------------------------------------------------
            SQL = "Select * From a"
            Rs.Open SQL, Conn, adOpenKeyset, adLockOptimistic, adCmdText
            If Rs.State <> 0 Then
                   While Not Rs.EOF
                         With Me
                              With .TreeView1
                                   With .Nodes
                                        .Add "A_" & Rs("届别").Value, 4, "A_" & Rs("班号").Value, Rs("班号").Value
                                   End With
                              End With
                         End With
                         Rs.MoveNext
                   Wend
            End If
            Rs.Close
            '-------------------------------------------------------------------------------
            Set Rs = Nothing
            Conn.Close
            Set Conn = Nothing
    End Sub
      

  4.   

    我有源程序,要的话发给你,
    [email protected]
      

  5.   

    Dim I As Integer
    Public Sub Tree_change()
      Dim Key, Text, bh As String
      Ado.RecordSource = "select * from 班级信息"
      Ado.Refresh
      
          Text = "1"
              Set node1 = Tree.Nodes.Add(, , , Text, 1)  If Ado.Recordset.RecordCount > 0 Then
        
        Ado.Recordset.MoveFirst    Do While Ado.Recordset.EOF = False          Text = Trim(Ado.Recordset.Fields("界别"))
                  Set node2 = Tree.Nodes.Add(node1.Index, tvwChild, , Text, 2)             Text = Trim(Ado.Recordset.Fields("班号"))
                      Set node3 = Tree.Nodes.Add(node2.Index, tvwChild, , Text, 2)
        
        Ado.Recordset.MoveNext
        Loop
      End If
      
      
    End SubPrivate Sub Form_Activate()
    Ado.RecordSource = "select * from 班级信息"
    Ado.Refresh
    Call Tree_changeEnd SubPrivate Sub Form_Load()
    Ado.Visible = False
    End SubPrivate Sub Tree_NodeClick(ByVal Node As MSComctlLib.Node)
    Ado.RecordSource = "select * from 班级信息"
    Ado.Refresh
    If Ado.Recordset.RecordCount <> 0 Then
    End If
    End Sub这是数据库为SQL的情况,Ado绑定数据库,你也可以用别的方法
      

  6.   

    按flyingZFX(★我飞★我飞★我飞呀飞★)的方法
    总是出现了集合中的关键字不是唯一的错误~
    怎样解决~