我的数据库
班号 届别
41025 2003
41024 2003
43023 2001
我如何在TREEVIEW中显示出来如下面的
1
--2003
------41025
------41024
--2002
------43023
要求届别不能重复~
班号 届别
41025 2003
41024 2003
43023 2001
我如何在TREEVIEW中显示出来如下面的
1
--2003
------41025
------41024
--2002
------43023
要求届别不能重复~
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
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
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
[email protected]
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绑定数据库,你也可以用别的方法
总是出现了集合中的关键字不是唯一的错误~
怎样解决~