VB treeview 遍历问题
我的数据库是这样的
编号 名称
00 三年一班
0001 美术小组
000101 张三
01 三年二班
0101 音乐小组
010101 王五
规则是这样的:张三属于美术小组,美术小组属于三年一班。
编号是张三的编号前二位是班级编号,中间两位是小组编号,最后两位是个人编号。小组编号是前两位是班级编号,后两位是这个小组编号。
想通过treeview生成这样一棵树
三年一班
美术小组
张三
三年二班
音乐小组
王五
请问该如何做,请高手指点一下。
[解决办法]
排序后添加不就完了的事,没那么复杂
Dim conn As ConnectionPrivate Type CodeingRuleType ParentSize As Long MeSize As LongEnd TypePrivate Sub Command1_Click() Dim rs As New Recordset Dim rsRecordCount As Long Dim CodeingRule As String Dim TempArray() As String Dim Rule() As CodeingRuleType Dim RuleSize As Long Dim CodeingSize As Long Dim X As Long '分析你的编码规则 CodeingRule = "**.**.**" '你的编码规则 TempArray = Split(CodeingRule, ".") RuleSize = UBound(TempArray) ReDim Rule(RuleSize) For X = 0 To RuleSize If X = 0 Then Rule(X).MeSize = Len(TempArray(X)) Rule(X).ParentSize = 0 Else Rule(X).MeSize = Len(TempArray(X)) + Rule(X - 1).MeSize Rule(X).ParentSize = Rule(X - 1).MeSize End If Next X '开始数据处理 rs.Open "Select Count(*) As C From 表", conn, 3, 3 rsRecordCount = rs!C rs.Close If rsRecordCount > 0 Then rs.Open "Select * From 表 Order By Len(编号),编号", conn, 3, 3 For X = 1 To rsRecordCount If Len(rs!编号) = Rule(0).MeSize Then TreeView1.Nodes.Add , , "C" & rs!编号, rs!名称 Else '查询级别 CodeingSize = Len(rs!编号) For Y = 1 To RuleSize If CodeingSize = Rule(Y).MeSize Then Exit For End If Next Y TreeView1.Nodes.Add "C" & Left(rs!编号, Rule(Y).ParentSize), 4, "C" & rs!编号, rs!名称 End If If X < rsRecordCount Then rs.MoveNext Next X rs.Close End IfEnd SubPrivate Sub Form_Load() Set conn = New Connection conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb"End SubPrivate Sub Form_Unload(Cancel As Integer) conn.Close Set conn = NothingEnd Sub