技術(shù) 點
- 技術(shù)
- 點
- V幣
- 點
- 積分
- 44
|
f:\treeview.jpg
mdb升級成adp后treeview無法顯示菜單,mdb中正常能讀取表中數(shù)據(jù)為菜單項,ADP中提示對象變量未設(shè)置。可能無法讀取SQL中表數(shù)據(jù)所致,但不知要改哪一個語句,如何寫?
Private Sub Form_Load()
On Error GoTo ErrForm_Load
Dim db As Database, Rst As Recordset, nodCurrent As Node
Dim objTree As TreeView, strText As String, nodRoot As Node
Dim bk As String
Set db = CurrentDb
Set Rst = db.OpenRecordset("SwitchboardItems", dbOpenDynaset, dbReadOnly)
Set objTree = Me!xTree.Object
' 查找第一個上級
Rst.FindFirst "[ItemNumber] Is Null"
' 向TREEVIEW裝入數(shù)據(jù)
Do Until Rst.NoMatch
' 取得科目名稱
strText = Rst![ItemText]
' TREEVIEW第一層.
Set nodCurrent = objTree.Nodes.Add(, , "a" & Rst!ID, strText, 1, 2)
' 裝記錄位置存入變量.
bk = Rst.Bookmark
' 用遞歸過程加入子節(jié)點(調(diào)用)
AddChildren nodCurrent, Rst
' 返回原位
Rst.Bookmark = bk
' 查找下一個上級
Rst.FindNext "[ItemNumber] Is Null"
Loop
ExitForm_Load:
Exit Sub
ErrForm_Load:
MsgBox Err.Description, vbCritical, "Load Error:"
Resume ExitForm_Load
End Sub
'==================================================================
'子過程,加入子節(jié)點及孫節(jié)點
'==================================================================
Sub AddChildren(nodBoss As Node, Rst As Recordset)
On Error GoTo ErrAddChildren
Dim nodCurrent As Node
Dim objTree As TreeView, strText As String, bk As String
' 變量.
Set objTree = Me!xTree.Object
' 查找第一個子節(jié)點
Rst.FindFirst "[ItemNumber] =" & Mid(nodBoss.Key, 2)
' 裝入數(shù)據(jù)
Do Until Rst.NoMatch
' 取得科目名稱.
strText = Rst![ItemText]
' 加入子節(jié)咪.
Set nodCurrent = objTree.Nodes.Add(nodBoss, tvwChild, "a" & Rst!ID, strText, 1, 2)
' 保存位置
bk = Rst.Bookmark
' 裝入下層節(jié)點
AddChildren nodCurrent, Rst
' 返回并繼續(xù)查找
Rst.Bookmark = bk
' 查找下一個
Rst.FindNext "[ItemNumber]=" & Mid(nodBoss.Key, 2)
Loop
ExitAddChildren:
Exit Sub
ErrAddChildren:
MsgBox Err.Description, vbCritical, "AddChildren Error:"
Resume ExitAddChildren
End Sub
|
|