问个问题 我有个数据库内容如下
id name upid
a 江苏 0
a01 南京 a
a0101 玄武区 a01
b 安徽 0
b01 合肥 b
b0101 卢阳区 b01
请问这样的数据我怎么用vb6 的treeview来读取(这里的层次是可以自己添加的)
id name upid
a 江苏 0
a01 南京 a
a0101 玄武区 a01
b 安徽 0
b01 合肥 b
b0101 卢阳区 b01
请问这样的数据我怎么用vb6 的treeview来读取(这里的层次是可以自己添加的)
解决方案 »
- VB 调用Jmail 后台发送文件到指定邮箱 反应很慢怎么办?
- VB可以连接的数据库,请举例一下~~!! 我只知道(Oracle,SQL,Access,Excel,dBase,Foxpro),还有譬如Informix,Sybase,MySql等等可以吗?
- 请教:写奇迹,天堂2,大话西游2这样的游戏软件外挂,要学会怎么什么开发语言和技能??谢谢先!
- 在线急等,activex dll中全局变量的定义问题
- 当打开的表的名称里面有空格的时候该怎么打开它?
- 程序一到mrc.eof就出现错误"对象变量未设置或With块变量未设置"不知道为什么
- 请问如何在vb的类中,实现数组的传递?
- 想念在法国的女友,散分!!
- collection的add() ??
- 一个普通的窗体,设置ControlBox为False,然后如何设置属性使其不能通过拖拉改变大小?
- vb 关于MSFlexGrid调整行数
- 使用CreateFontIndirect创建字体时如何指定字体
TreeView1.LabelEdit = tvwManual
Call Tree_change
End SubPublic Sub Tree_change()
Dim key, Text, strtemp As String
Dim Nod As Node '定义一个节点变量
Dim StrSQL, StrSQLa As String
StrSQL = "select * from 树视图主菜单 "
If RsTreemenu.State = adStateClosed Then
RsTreemenu.Open StrSQL, DBCON, adOpenKeyset, adLockPessimistic, adCmdText '//打开记录集
End If
If RsTreemenu.RecordCount > 0 Then
RsTreemenu.MoveFirst
Do While RsTreemenu.EOF = False '循环读取第1层节点中的数据信息
key = Trim(RsTreemenu.Fields(1))
Text = RsTreemenu.Fields(1)
strtemp = RsTreemenu.Fields(1)
Set node1 = TreeView1.Nodes.Add(, tvwChild, key, Text, 0) '给第1层节点赋与数值
StrSQLa = "select * from 树视图子菜单 where 主菜单名称 = '" & strtemp & "'"
If RsTreeminimenu.State = adStateClosed Then
RsTreeminimenu.Open StrSQLa, DBCON, adOpenKeyset, adLockPessimistic, adCmdText '//打开记录集
End If
If RsTreeminimenu.RecordCount > 0 Then
RsTreeminimenu.MoveFirst
Do While RsTreeminimenu.EOF = False '循环读取第2层节点中的数据信息
key = Trim(RsTreeminimenu.Fields(1))
Text = RsTreeminimenu.Fields(1)
Set Node2 = TreeView1.Nodes.Add(node1.Index, tvwChild, key, Text, 0) '给第2层节点赋与数值
RsTreeminimenu.MoveNext
Loop
Else
End If
RsTreemenu.MoveNext
RsTreeminimenu.Close
Loop
Else
End If
End Sub
然后添加length(upid)=1的
然后根据展开结点添加
id name upid
a 江苏 0
a01 南京 a
a0101 玄武区 a01
可能我用户又添加了
a010101 长笑路 a0101
a01010101 18号 a010101
..... ... .........
这样以此类推 无限制的读取,数据库的层次是动态可变的 可能这有一层 也可能有N层
id name upid
a 江苏 0
a01 南京 a
a0101 玄武区 a01
可能我用户又添加了
a010101 长笑路 a0101
a01010101 18号 a010101
..... ... .........
b 安徽 0
b01 合肥 b
b0101 卢阳区 b01
..... ... ......... 这样以此类推 无限制的 读取,数据库的层次是动态可变的 可能这有一层 也可能有N层
Dim RS As ADODB.Recordset
DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp.mdb"
Set RS = DB.Execute("SELECT * FROM tb1 ORDER BY id")
Do While Not RS.EOF
If RS.Fields("upid") = 0 Then
Me.TreeView1.Nodes.Add , , RS.Fields("id"), RS.Fields("name")
Else
Me.TreeView1.Nodes.Add RS.Fields("upid").Value, tvwChild, RS.Fields("id"), RS.Fields("name")
End If
RS.MoveNext
Loop
RS.Close
DB.Close
Set RS = Nothing
Set DB = Nothing