Private Sub FillTree()
Tree.Nodes.Clear '刷新列表时清空项目
Dim nodx As Node
Dim rs As New ADODB.Recordset
rs.Open "select Unit_id,Unit_name from Unit", Adocnn, adOpenStatic, adLockReadOnly
Set nodx = Tree.Nodes.Add(, , "A", "所有单位", 1)
While Not rs.EOF
Set nodx = Tree.Nodes.Add("A", tvwChild, "A" & rs!Unit_Id, rs!Unit_Name, 2)
nodx.Tag = rs!Unit_Id
rs.MoveNext
Wend
Tree.Nodes(1).Expanded = True
Set rs = Nothing
End Sub
'=============================================================================================
'对xingmingbiao表进行查询操作
jiluji.Open "Select * from xingmingbiao", shujukulianjie
tvTreeView.Nodes.Clear '刷新列表时清空项目
Dim nodx As Node
Set nodx = tvTreeView.Nodes.Add(, , "A", "所有单位", 1)
While Not jiluji.EOF
Set nodx = tvTreeView.Nodes.Add("A", tvwChild, "A" & jiluji!Unit_Id, jiluji!Unit_Name, 2)
nodx.Tag = jiluji!Unit_Id
jiluji.MoveNext
Wend
tvTreeView.Nodes(1).Expanded = True
'Set jiluji = Nothing
'================================================================================================
============================
Public rsDiQu As ADODB.Recordset
Public rsChengShi As ADODB.Recordset
Private Sub Form_Load()
tvwDiQu.LineStyle = tvwTreeLines
tvwDiQu.ImageList = ImageList1
tvwDiQu.Style = tvwTreelinesPlusMinusPictureText
Dim nodx As Node
Set rsDiQu = New ADODB.Recordset
Set rsChengShi = New ADODB.Recordset
UnlockDatabase '打开一个到SQL Server2000的连接Cn
rsDiQu.Open "select 地区名称,地区ID from 地区信息", Cn '地区信息
If rsDiQu.RecordCount > 0 Then
rsDiQu.MoveFirst
Do While Not rsDiQu.EOF
If rsChengShi.State = adStateOpen Then '由于要重复使用rsChengShi,所以关闭再打开
rsChengShi.Close
End If
rsChengShi.Open "select * from 城市信息 where 地区ID='" + Trim(rsDiQu.Fields("地区ID")) + "' ", Cn '每个城市有地区ID,依次选出地区所包括的城市
'Trim函数很重要,没有会报错。
Set nodx = tvwDiQu.Nodes.Add(, , Trim(rsDiQu.Fields("地区名称")), rsDiQu.Fields("地区名称"), 1) '添加地区(父)节点
If rsChengShi.RecordCount > 0 Then
Do While Not rsChengShi.EOF
'Debug.Print rsChengShi.Fields("城市名称")
Set nodx = tvwDiQu.Nodes.Add(Trim(rsDiQu.Fields("地区名称")), tvwChild, , rsChengShi.Fields("城市名称"), 3)
'遍历城市,添加城市(子)节点
rsChengShi.MoveNext
Loop
End If 'If rsChengShi.RecordCount > 0
rsDiQu.MoveNext '添加下一个地区及其包括的城市
Loop
End If 'If rsDiQu.RecordCount > 0
DestroyRs rsDiQu
DestroyRs rsChengShi
End Sub
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhs1931/archive/2009/10/20/4704807.aspx