这次,主要是探讨下如何把数据库上的数据绑定到树上。
一般情况下,将树与数据库绑定才有实际的意义,这样树控件能动态地显示导航。
其实数据库绑定到树跟直接设置是一样的,都不复杂。只要是把数据库中取出来的数据用add 方法绑定即可
无论你是用ado,还是dao 都一样 ,主要是取出数据即可,这里不做详细介绍。
ado:rst.Open “sql” rst(字段)
dao:CurrentDb.OpenRecordset(sql) rst1!字段
主要代码:
Dim Node1 As Node '定义变量
Dim rst, rst1 As DAO.Recordset
i = 1
'定义变量
s = "SELECT * FROM 客户 Where 客户ID>0 ORDER BY 客户ID"
Set rst = CurrentDb.OpenRecordset(s) '定义根的动态集,数据来自"客户"表
Do Until rst.EOF
'设置第一级客户"
Set Node1 = TreeView1.Nodes.Add(, , "客户" & rst!客户ID, Nz(Trim(rst!名称)), "K1", "K2") '将客户表中的内容加入树型控件中
s1 = "SELECT * FROM 销售合同 Where 客户=" & rst!客户ID
Set rst1 = CurrentDb.OpenRecordset(s1) '定义一个树杈的动态集,数据来自"销售合同"表
Do Until rst1.EOF
'设置第二级"合同"
Set Node1 = TreeView1.Nodes.Add("客户" & Mid(str(rst!客户ID), 2), tvwChild, "合同" & rst1!合同号, Nz(Trim(rst1!合同名称)), "K1", "K2")
' 将销售合同表中的内容加入树型控件中
s2 = "SELECT 销售商品.合同号, 商品.商品名称 FROM 销售商品 INNER JOIN 商品 ON 销售商品.商品 = 商品.商品ID Where 销售商品.合同号='" & rst1!合同号 & "'"
Set rst2 = CurrentDb.OpenRecordset(s2) '定义一个树枝的动态集,数据来自"销售商品和商品"表
Do Until rst2.EOF
'设置第三级"商品"
Set Node1 = TreeView1.Nodes.Add("合同" & rst1!合同号, tvwChild, "商品" & str(i), Nz(Trim(rst2!商品名称)), "K1", "K2")
'将销售商品和商品表中的内容加入树型控件中
i = i + 1
rst2.MoveNext
Loop
rst1.MoveNext
Loop
rst.MoveNext
Loop