TreeView控件在编制程序过程中用得比较多。正确的掌握和使用这个控件,可以很好的表示层次关系的数据。在数据库应用系统中,我们可以用TreeView来显示树形结构,如显示目录树、显示班级信息等等,有着很重要的作用
看看下面一个实际的问题:每个年度都有许多的班级,将这些数据层次表示
数据库:access
表:Test
字段:bh(班级编号,文本,主键),nj(年级,文本)
功能:以层次关系表现出数据
测试数据: 添加TreeView控件,2个按钮
2个按钮分别用了两种方法显示数据。但是第二种方法明显优于第一种。
可以仔细的看代码
'引用microsoft activex data object 2.x library
Dim nddata As Node
Dim cnn As ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Private Sub Command1_Click()
On Error Resume Next
Set nddata = TreeView1.Nodes.Add(, , "db", "班级信息")
nddata.Expanded = True
Dim intcount As Integer
Dim inttable As Integer
Dim intfield As Integer
Dim intfn As Integer
rs1.Open "select nj from test group by nj", cnn, 1, 3
inttable = rs1.RecordCount
Do While inttable <> intcount
Set nddata = TreeView1.Nodes.Add("db", tvwChild, "F" & rs1.Fields("nj"), rs1.Fields("nj"))
rs2.Open "select bh,nj from test where nj='" & rs1.Fields("nj") & "'", cnn, 1, 3
intfield = rs2.RecordCount
If intfield <> 0 Then
intfn = 0
Do While intfield <> intfn
Set nddata = TreeView1.Nodes.Add("F" & rs1.Fields("nj"), 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 Sub
‘第二种方法
Private Sub Command2_Click()
On Error Resume Next
Set nddata = TreeView1.Nodes.Add(, , "db", "班级信息")
nddata.Expanded = True
rs1.Open "select * from test", cnn, 1, 3
Do While Not rs1.EOF
If ca <> rs1.Fields("nj") Then
Set nddata = TreeView1.Nodes.Add("db", tvwChild, "F" & rs1.Fields("nj"), rs1.Fields("nj"))
ca = rs1.Fields("bb")
End If
Set nddata = TreeView1.Nodes.Add("F" & rs1.Fields("nj"), tvwChild, "S" & rs1.Fields("bh"), rs1.Fields("bh"))
rs1.MoveNext
Loop
rs1.Close
End Sub
Private Sub Form_Load()
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\csdn_vb\database\treeview的节点添加\1\test.mdb"
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set con = Nothing
End Sub
【责编:admin】
--------------------next---------------------