这次,主要是探讨下如何把数据库上的数据绑定到树上。
一般情况下,将树与数据库绑定才有实际的意义,这样树控件能动态地显示导航。
其实数据库绑定到树跟直接设置是一样的,都不复杂。只要是把数据库中取出来的数据用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

posted on 2013-07-16 17:37  Officecn  阅读(558)  评论(0编辑  收藏  举报