首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB treeview 遍历有关问题

2012-01-20 
VB treeview 遍历问题我的数据库是这样的编号名称00三年一班0001美术小组000101张三01三年二班0101音乐小

VB treeview 遍历问题
我的数据库是这样的
  编号 名称
  00 三年一班
  0001 美术小组
  000101 张三
  01 三年二班
  0101 音乐小组
  010101 王五
规则是这样的:张三属于美术小组,美术小组属于三年一班。
  编号是张三的编号前二位是班级编号,中间两位是小组编号,最后两位是个人编号。小组编号是前两位是班级编号,后两位是这个小组编号。
想通过treeview生成这样一棵树
 三年一班
  美术小组
  张三
 三年二班
  音乐小组
  王五
请问该如何做,请高手指点一下。
 

[解决办法]
排序后添加不就完了的事,没那么复杂

VB code
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 

热点排行