設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

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

mdb升級成adp后treeview無法顯示菜單

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2019-2-26 11:04:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
 樓主| 發(fā)表于 2019-2-26 11:06:16 | 只看該作者
上傳圖片

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
回復(fù)

使用道具 舉報

3#
發(fā)表于 2019-2-26 15:32:51 | 只看該作者

估計不支持這個控件吧。這個得問下zhuyiwen老師了。我對adp不甚了解。

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

4#
發(fā)表于 2019-3-6 17:47:19 | 只看該作者
本帖最后由 zhuyiwen 于 2019-3-6 17:52 編輯

ADP中不支持CurrentDB對象,也就是說ADP不支持DAO對象,你要用ADO對象來替代。如CurrentProject.Connection對象來打開表或查詢SQL語句來獲取數(shù)據(jù)。
5#
 樓主| 發(fā)表于 2019-3-7 13:23:58 | 只看該作者
謝謝朱老師,看來要要再學(xué)習(xí)一下ADO知識。

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

6#
發(fā)表于 2019-5-7 09:59:42 | 只看該作者
升級到adp可能問題會多一點, access鏈接表+sql,基本不會有太多的意外。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

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

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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