设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

mdb升级成adp后treeview无法显示菜单

[复制链接]
跳转到指定楼层
1#
发表于 2019-2-26 11:04:39 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
f:\treeview.jpg
mdb升级成adp后treeview无法显示菜单,mdb中正常能读取表中数据为菜单项,ADP中提示对象变量未设置。可能无法读取SQL中表数据所致,但不知要改哪一个语句,如何写?
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装入数据
      Do Until Rst.NoMatch
         ' 取得科目名称
         strText = Rst![ItemText]
         ' TREEVIEW第一层.
         Set nodCurrent = objTree.Nodes.Add(, , "a" & Rst!ID, strText, 1, 2)
         ' 装记录位置存入变量.
         bk = Rst.Bookmark
         ' 用递归过程加入子节点(调用)
         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

      '==================================================================
      '子过程,加入子节点及孙节点
      '==================================================================
      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
      ' 查找第一个子节点
      Rst.FindFirst "[ItemNumber] =" & Mid(nodBoss.Key, 2)
      ' 装入数据
      Do Until Rst.NoMatch
         ' 取得科目名称.
         strText = Rst![ItemText]
         ' 加入子节咪.
         Set nodCurrent = objTree.Nodes.Add(nodBoss, tvwChild, "a" & Rst!ID, strText, 1, 2)
         ' 保存位置
         bk = Rst.Bookmark
         ' 装入下层节点
         AddChildren nodCurrent, Rst
         ' 返回并继续查找
         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#
 楼主| 发表于 2019-2-26 11:06:16 | 显示全部楼层
上传图片

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

3#
 楼主| 发表于 2019-3-7 13:23:58 | 显示全部楼层
谢谢朱老师,看来要要再学习一下ADO知识。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 04:57 , Processed in 0.102109 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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