Office中国论坛/Access中国论坛

标题: [分享]将TreeView(视树)之应用简单化 [打印本页]

作者: fan0217    时间: 2006-3-1 19:09
标题: [分享]将TreeView(视树)之应用简单化


[attach]16127[/attach]


TreeView控件是个非常常用的控件,特别是在分层数据结构中采用TreeView控件显示是非常直观的。但是它的使用又比较的复杂,网上有很多关于怎样使用TreeView控件的文章和教程,都是讲方法的需要很长时间的摸索和学习。怎样更快捷的使用TreeView控件,而不必抱着厚厚的书本啃呢?这里提供了个加载TreeView控件的函数,只需要在使用TreeView控件的窗体的加载事件或打开事件中,加上一句调用该函数的语句就可以了。

当然该函数还有些局限性:只能使用来自一个表的数据,同时该数据表必需有3个必需的字段(字段的数据类型有一定的要求),适用于数据分层不确定的结构当中。

函数分为一个主函数,一个子函数,采用的是ADO和递归子函数加载子节点,孙节点……


调用示例:Call AddMyTree(xTree, "动物类别", "上级类别", "类别ID", "类别名称")

注意事项:xTree是控件名称,在调用函数时不能加引号

由于时间比较仓促,可能会有错误,请大家指正。

Function AddMyTree(ByVal objTree As Object, ByVal strTable As String, _
                   ByVal strFather As String, ByVal strChildren As String, _
                   ByVal strText As String)
'===============================================================================
'-函数名称:     AddMyTree
'-功能描述:     加载TreeView,使用时需要调用AddMyTreeChildren子函数
'-输入参数说明: 参数1: 必选 objTree As Object TreeView控件名称
'               参数2: 必选 strTable As String  TreeView控件数据来源的表名
'               参数3: 必选 strFather As String  父节点字段名称   字段类型为数字
'               参数4: 必选 strChildren As String  子节点字段名称  字段类型为自动编号
'               参数5: 必选 strText As String  节点文本字段的名称 字段类型为文本
'-返回参数说明:
'-使用语法示例: Call AddMyTree(xTree, "动物类别", "上级类别", "类别ID", "类别名称")
'-参考:
'-使用注意:     objTree 为TreeView控件名称,使用时不能加引号
'               strTable为数据表名称,不能使用SQL语句,但可以使用查询名称
'-兼容性:       2000,XP,2003 compatible
'-作者:         fan0217@163.com
'-更新日期:    2006-02-26
'===============================================================================
'On Error GoTo Err_AddMyTree
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
Dim nodCurrent As Node
Dim book As Variant
Dim strFind As String
'设置conn连接对象为当前打开的连接
Set conn = CurrentProject.Connection
'设置查询语句
strSQL = "SELECT * FROM [" & strTable
strSQL = strSQL & "] WHERE " & strFather & "=0;"
'设置记录集对象的内容,通过Open方法建立只读一个记录集
rst.Open strSQL, conn, adOpenStatic, adLockReadOnly
'使用循环语句
Do While Not rst.EOF
'向TreeView控件中载入数据
  Set nodCurrent = objTree.Nodes.Add(, , "a" & rst(strChildren), rst(strText), 1, 2)
    '调用子函数,加入子节点
    AddMyTreeChildren objTree, strTable, strFather, strChildren, strText, nodCurrent
    '移动指针
    rst.MoveNext
Loop
    rst.Close
    Set rst = Nothing
    Set conn = Nothing
Exit_AddMyTree:
         Exit Function
Err_AddMyTree:
      Set rst = Nothing
      Set conn = Nothing
         MsgBox Err.Description, vbCritical, "AddMyTree"
         Resume Exit_AddMyTree
End Function


Function AddMyTreeChildren(ByVal objTree As Object, ByVal strTable As String, _
                   ByVal strFather As String, ByVal strChildren As String, _
                   ByVal strText As String, nodBoss As Node)
'===============================================================================
'-函数名称:     AddMyTreeChildren
'-功能描述:     加载TreeView,为AddMyTree函数的子函数,使用时需要与AddMyTree配合使用
'-输入参数说明:
'-返回参数说明:
'-使用语法示例:
'-参考:
'-使用注意:     使用本函数时请保留函数信息内容
'-兼容性:       2000,XP,2003 compatible
'-作者:         fan0217@163.com
'-更新日期:    2006-02-26
'========================================================
作者: 一点通    时间: 2006-3-1 19:32
不错,谢谢分享,收藏了
作者: skylark    时间: 2006-3-1 19:49
To fan0217:

先收藏,慢慢学习,感谢共享!
作者: fan0217    时间: 2006-3-2 18:45
匆忙始终要犯错,不能完全加载数据。现在已经修正。请在顶楼查收。

[此贴子已经被作者于2006-3-2 19:26:02编辑过]


作者: zxzx2733    时间: 2006-3-13 03:26
给你顶一下
作者: chenjian99    时间: 2006-3-20 20:08
标题: kankan
kankan
作者: chenjian99    时间: 2006-3-20 20:08
kankan
作者: chenjian99    时间: 2006-3-20 20:09
kankan
作者: koopman    时间: 2006-3-20 22:46
看看
作者: koopman    时间: 2006-3-20 22:46
看看
作者: aone    时间: 2006-3-23 09:08
收藏学习
作者: zxcv_2011    时间: 2006-3-24 05:01
先收藏!后学习
作者: qwert22112    时间: 2006-3-28 00:41
看看
作者: zyz218    时间: 2006-3-28 04:25
好贴!!收藏了!!
作者: windy97_summer    时间: 2006-3-29 09:42
辛苦了,期待可以联系子窗口讲讲[em44]
作者: ninjasai    时间: 2006-4-7 18:46
目前正在找treeview的应用~~~ 谢楼主了
作者: tj747tj    时间: 2006-4-12 21:03
试试看
作者: tj747tj    时间: 2006-4-12 21:08
zhengzaiyong
作者: tj747tj    时间: 2006-4-12 21:15
有点小问题


作者: acerly    时间: 2006-4-14 21:51
虽然暂时还看不太懂,但先收下了,以后慢慢研究~呵呵。谢谢楼主分享啦
作者: fan0217    时间: 2006-4-14 21:53
以下是引用tj747tj在2006-4-12 13:15:00的发言:


有点小问题



请指正.
作者: brucewong    时间: 2006-4-16 00:50
下来研究研究先
作者: wufen    时间: 2006-4-27 01:50
好例子,谢谢
作者: wufen    时间: 2006-4-27 01:50
再发一次就可以下了
作者: winner    时间: 2006-4-27 17:23
先收了再慢慢研究,谢谢!
作者: emily8    时间: 2006-6-7 18:05
ffffffffffffffffffffffffffffffffffffffff
作者: emily8    时间: 2006-6-7 18:05
gggggggggggggggggggggggggggggggggggggggggggg
作者: emily8    时间: 2006-6-7 18:05
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
作者: emily8    时间: 2006-6-7 18:05
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
作者: hyi95    时间: 2006-6-25 03:08
谢谢分享
作者: bigbigdog    时间: 2006-8-23 04:56
谢谢
作者: 地球指针    时间: 2006-8-23 06:51
呵呵,今天捡到宝了。先收了再说

这几天看了一个树的例子,没明白。
作者: 好学    时间: 2006-8-23 06:57
谢谢!收藏了[em02]
作者: erhong    时间: 2006-8-23 23:25
标题: ding
ding hao !!
作者: erhong    时间: 2006-8-23 23:27
标题: hao
大亨德黑兰卡了科第按时打发似的看见,描写但是
作者: yjisme    时间: 2006-8-24 01:09
其实有更简单的方法,还可以实现增加、删除,编辑等功能。我正在测试,以后会上传的。
作者: alonet    时间: 2006-10-12 09:46
1
作者: alonet    时间: 2006-10-12 09:47
2
作者: alonet    时间: 2006-10-12 09:47
3
作者: zmlzml99    时间: 2006-11-14 18:18
good
作者: zmlzml99    时间: 2006-11-14 18:18
good
作者: zmlzml99    时间: 2006-11-14 18:19
good
作者: yinwenjun    时间: 2006-11-29 00:52
To fan0217:



先收藏,慢慢学习,感谢共享!


作者: duomu    时间: 2007-8-4 07:51
这个例子不错,学习了
作者: freew    时间: 2008-1-11 11:08

作者: divineka    时间: 2008-2-1 22:53
不错,楼主辛苦,谢谢分享
作者: guoanxiang    时间: 2008-4-14 12:45
好帖呀!
我来学习学习……
作者: tempwu    时间: 2008-4-15 20:32
标题: 不错,谢谢分享,收藏了
不错,谢谢分享,收藏了
作者: cjssxo    时间: 2008-6-18 19:07
不错啊
作者: linag516    时间: 2008-6-18 20:58
[:50]
作者: liaoliao    时间: 2008-7-26 23:06
[:45] [:45] [:45] 看
作者: liaoliao    时间: 2008-7-26 23:11
??????[:38] [:38] [:38]
作者: lzslp131477    时间: 2008-7-27 09:09
看  看
作者: marlsq    时间: 2008-9-3 16:50
给你顶一下
作者: open0    时间: 2008-10-14 10:39
look at
作者: youchy652@sohu.    时间: 2008-10-15 14:51
正好需要
作者: changweiren    时间: 2008-10-15 23:26
慢慢学习,感谢共享!
作者: DSYOU    时间: 2008-10-29 11:32
kan kan
作者: wjsfeng    时间: 2009-2-7 09:29
好耶,不过对我们来说也还是很困难
作者: fxtest    时间: 2009-2-7 09:36
收下来学习!
作者: lhsh    时间: 2009-2-8 11:32
慢慢学习,感谢共享!
作者: tzt0625    时间: 2009-2-8 15:48
继续研究~!!!!!
作者: zkh    时间: 2009-2-14 11:00
慢慢学习 ,以后能用上
作者: pro    时间: 2009-2-18 06:07
顶一下
作者: fruiticer    时间: 2009-3-4 23:06
好复杂呀。
作者: luhao    时间: 2009-3-6 12:01
16127
TreeView控件是个非常常用的控件,特别是在分层数据结构中采用TreeView控件显示是非常直观的。但是它的使用又比较的复杂,网上有很多关于怎样使用TreeView控件的文章和教程,都是讲方法的需要很长时间的摸索 ...
fan0217 发表于 2006-3-1 19:09

因为我的表与您 的表不同,请帮我修改下
作者: g97126    时间: 2009-3-12 15:58
想学学
作者: jackysu78    时间: 2009-4-8 17:01
学习
作者: benlty    时间: 2009-8-31 19:30
学习中
作者: sphinx6666    时间: 2009-10-26 09:23
xie xei fenxiang
作者: mts    时间: 2009-10-29 18:57
不错不错
作者: mts    时间: 2009-10-29 18:57
以后还请多指教
作者: mts    时间: 2009-10-29 18:58
我现在还没入门,往往一个问题都要研究好几天
作者: DDBB2    时间: 2009-10-31 17:13
谢谢。。。。。。。。。。。。。
作者: like5188    时间: 2009-12-8 19:55
dddddddd
作者: 文棣    时间: 2009-12-18 14:32
谢谢分享
作者: xiaoyuzhi    时间: 2009-12-22 20:04
好用
作者: fcghw    时间: 2009-12-25 02:37
再顶!!!!
作者: jakyky    时间: 2010-2-26 16:11
谢谢分享
作者: c101    时间: 2010-2-27 06:27
谢谢分享
作者: malee189    时间: 2010-3-7 10:02
good
作者: benlty    时间: 2010-3-12 22:47
学习中
作者: hgxsyhb    时间: 2010-3-15 16:47
学习,顶一下




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3