设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 6117|回复: 17
打印 上一主题 下一主题

[窗体] 【Access小品】TreeView节点拖曳示例

[复制链接]
跳转到指定楼层
1#
发表于 2013-11-29 21:16:54 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
  前几日写了一个TreeView的右键示例,受到版友们的欢迎。TreeView控件的用途广泛,技巧甚多。不过由于它不是Access的内置控件,所以学习起来还是有些困难存在。今日,又有版友问起创建TreeView节点的问题,在解决完他的问题后,决定以其数据,写一个简单的节点拖曳的示例,供初学者参考。



















Office交流网开发的Access专用树控件免费下载-支持64位
http://www.office-cn.net/book/accesstree/5.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享 分享淘帖1 订阅订阅
2#
 楼主| 发表于 2013-11-29 22:06:47 | 显示全部楼层
本帖最后由 todaynew 于 2013-11-29 22:10 编辑
玉树TMD临风 发表于 2013-11-29 21:42
不错,老大,我单位里有个程序也在用treeview,遇到一个问题,treeview加载数据库中的各表及其字段,要实现 ...

应该不必这么麻烦。
因为你的tree是确定层级的,每个层级都有特定的含义。这样的话在加载时,对node的key值前面分别加上a、b、c....
这样在单击node事件中,读出node.key,然后用left取出第一个字符(a、b、c....),这样就知道节点所在的层了。

你把这个示例中的SetTree子程序,用以下代码替换一下,然后运行就明白怎么回事了。
Private Sub SetTree(ByVal tree As TreeView, ByVal Parentkey As String)
    Dim id As Long, str As String
    Dim rs As New ADODB.Recordset
    Dim ssql As String
    Dim i As Long
    Dim node As node

    str = Left(Parentkey, 1)      '取父节点key的第一个字符
    id = Val(Mid(Parentkey, 2))   '取父节点key中的ParentID值

    If id = 0 Then
        tree.Nodes.Clear
        Set node = tree.Nodes.Add(, , Parentkey, "产品目录", "k1", "k2")
        node.Expanded = True
    End If

    ssql = "select * from tblType WHERE ParentID = " & id
    rs.Open ssql, CurrentProject.Connection, adOpenStatic, adLockReadOnly
    str = Chr(Asc(str) + 1)    '字母递增一位
    For i = 1 To rs.RecordCount        '注意这里获得节点层级
        Set node = tree.Nodes.Add(Parentkey, tvwChild, str & rs!id.Value, rs!Name.Value & "--第" & Asc(str) - Asc("a") & "层", "k1", "k2")
        Call SetTree(tree, str & rs!id.Value)
        rs.MoveNext
    Next

    rs.Close: Set rs = Nothing
    Set node = Nothing

End Sub



您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-4 03:37 , Processed in 0.091985 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表