Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 9532|回復(fù): 9
打印 上一主題 下一主題

treeview 的 nodeclick 如何在下級(jí) 動(dòng)態(tài)加載 子節(jié)點(diǎn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2008-8-28 09:52:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
[:28]請(qǐng) fans 職教一下,我剛好也碰到類(lèi)是問(wèn)題:我建立一個(gè) 部門(mén)樹(shù),希望 點(diǎn)擊部門(mén)后,在下級(jí)節(jié)點(diǎn) 添加 該部門(mén)內(nèi)的人員, 已基本實(shí)現(xiàn),但是如果重新點(diǎn)擊 該部門(mén)后,提示錯(cuò)誤: key 不是唯一


Private Sub Form_Load()
    Me.Trv.Nodes.Clear    '清除Treeview控件中的所有節(jié)點(diǎn)
    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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2008-8-28 10:07:36 | 只看該作者
因?yàn)槟闶窃邳c(diǎn)擊是創(chuàng)建下級(jí)節(jié)點(diǎn),那因?yàn)镵EY一樣,就會(huì)重復(fù)了,最好判斷如果已經(jīng)創(chuàng)建過(guò),就不再創(chuàng)建了
3#
 樓主| 發(fā)表于 2008-8-28 10:17:46 | 只看該作者
老大,如何判斷,有例子嗎,謝謝[:22]

另外:
我想 再點(diǎn)擊 人員 節(jié)點(diǎn) 時(shí)候,在 另外子窗體中顯示 其 資料,還需要注意什么東西嗎

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

點(diǎn)擊這里給我發(fā)消息

4#
發(fā)表于 2008-8-30 15:34:13 | 只看該作者
if  node.Children > 1 then
  '已經(jīng)加載過(guò)了
end if
5#
 樓主| 發(fā)表于 2008-9-1 14:34:47 | 只看該作者
但是如果單位還有下級(jí)單位呢,

單位1
      部門(mén)1
            子部門(mén)1
                  王五
                  劉四

著這樣會(huì)出錯(cuò)嗎
6#
發(fā)表于 2009-12-3 11:41:18 | 只看該作者
ddddd
7#
發(fā)表于 2009-12-11 11:36:36 | 只看該作者
首先通過(guò)需要添加節(jié)點(diǎn)的Key屬性先獲取一下對(duì)應(yīng)的節(jié)點(diǎn)node對(duì)象,如果node為nothing,說(shuō)明沒(méi)有改節(jié)點(diǎn),否則就是已經(jīng)建立的。

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#
發(fā)表于 2013-3-28 16:25:31 | 只看該作者
頂頂
9#
發(fā)表于 2016-7-10 13:51:10 | 只看該作者
好好好
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 06:30 , Processed in 0.097583 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表