Office中国论坛/Access中国论坛

标题: treeview 的 nodeclick 如何在下级 动态加载 子节点 [打印本页]

作者: mopems    时间: 2008-8-28 09:52
标题: treeview 的 nodeclick 如何在下级 动态加载 子节点
[: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 编辑 ]
作者: tmtony    时间: 2008-8-28 10:07
因为你是在点击是创建下级节点,那因为KEY一样,就会重复了,最好判断如果已经创建过,就不再创建了
作者: mopems    时间: 2008-8-28 10:17
老大,如何判断,有例子吗,谢谢[:22]

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

[ 本帖最后由 mopems 于 2008-8-28 10:19 编辑 ]
作者: tmtony    时间: 2008-8-30 15:34
if  node.Children > 1 then
  '已经加载过了
end if
作者: mopems    时间: 2008-9-1 14:34
但是如果单位还有下级单位呢,

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

着这样会出错吗
作者: chenyingfengsx    时间: 2009-12-3 11:41
ddddd
作者: ztalex_ywt    时间: 2009-12-11 11: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
作者: xjb_test    时间: 2013-3-28 16:25
顶顶
作者: p51219    时间: 2016-7-10 13:51
好好好




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