设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

treeview 的 nodeclick 如何在下级 动态加载 子节点

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-28 09:52:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[:28]请 fans 职教一下,我刚好也碰到类是问题:我建立一个 部门树,希望 点击部门后,在下级节点 添加 该部门内的人员, 已基本实现,但是如果重新点击 该部门后,提示错误: key 不是唯一


Private Sub Form_Load()
    Me.Trv.Nodes.Clear    '清除Treeview控件中的所有节点
    Call AddMyTree(Trv, "usysDepartment", "Dept_ParentID", "Dept_ID", "Dept_Name")
    Me.Trv.SetFocus
End Sub

Private Sub Trv_NodeClick(ByVal Node As Object)
    'MsgBox Node.Index & "****" & Node.Tag
    Rec.Open "select * from EmploymentInfo where EMP_Units='" & Node & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    If Rec.RecordCount > 0 Then
        For i = 0 To Rec.RecordCount - 1
                Set Nodeindex = Trv.Nodes.Add(Node, tvwChild, "e" & Rec.Fields("EMP_ID"), Rec.Fields("EMP_Name"), 1, 2)
                    Node.Tag = Rec.Fields("EMP_ID")
                    Node.Sorted = True
            Rec.MoveNext
         Next
    End If
    Rec.Close
    Me.Trv.Refresh

[ 本帖最后由 mopems 于 2008-8-28 14:51 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-8-28 10:07:36 | 只看该作者
因为你是在点击是创建下级节点,那因为KEY一样,就会重复了,最好判断如果已经创建过,就不再创建了
3#
 楼主| 发表于 2008-8-28 10:17:46 | 只看该作者
老大,如何判断,有例子吗,谢谢[:22]

另外:
我想 再点击 人员 节点 时候,在 另外子窗体中显示 其 资料,还需要注意什么东西吗

[ 本帖最后由 mopems 于 2008-8-28 10:19 编辑 ]

点击这里给我发消息

4#
发表于 2008-8-30 15:34:13 | 只看该作者
if  node.Children > 1 then
  '已经加载过了
end if
5#
 楼主| 发表于 2008-9-1 14:34:47 | 只看该作者
但是如果单位还有下级单位呢,

单位1
      部门1
            子部门1
                  王五
                  刘四

着这样会出错吗
6#
发表于 2009-12-3 11:41:18 | 只看该作者
ddddd
7#
发表于 2009-12-11 11:36:36 | 只看该作者
首先通过需要添加节点的Key属性先获取一下对应的节点node对象,如果node为nothing,说明没有改节点,否则就是已经建立的。

Private Sub Trv_NodeClick(ByVal Node As Object)
    on error resume next
    Rec.Open "select * from EmploymentInfo where EMP_Units='" & Node & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    If Rec.RecordCount > 0 Then
        For i = 0 To Rec.RecordCount - 1
                Set Nodeindex=nothing
                Set Nodeindex = trv.nodes("e" & Rec.Fields("EMP_ID"))
                if nodeindex is nothing then
                    Set Nodeindex = Trv.Nodes.Add(Node, tvwChild, "e" & Rec.Fields("EMP_ID"), Rec.Fields("EMP_Name"), 1, 2)
                    Node.Tag = Rec.Fields("EMP_ID")
                    Node.Sorted = True
                end if
            Rec.MoveNext
         Next
    End If
    Rec.Close
    Me.Trv.Refresh
8#
发表于 2013-3-28 16:25:31 | 只看该作者
顶顶
9#
发表于 2016-7-10 13:51:10 | 只看该作者
好好好
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-1 19:33 , Processed in 0.097816 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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