设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1981|回复: 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-2-26 15:32:51 | 只看该作者

估计不支持这个控件吧。这个得问下zhuyiwen老师了。我对adp不甚了解。

点击这里给我发消息

4#
发表于 2019-3-6 17:47:19 | 只看该作者
本帖最后由 zhuyiwen 于 2019-3-6 17:52 编辑

ADP中不支持CurrentDB对象,也就是说ADP不支持DAO对象,你要用ADO对象来替代。如CurrentProject.Connection对象来打开表或查询SQL语句来获取数据。
5#
 楼主| 发表于 2019-3-7 13:23:58 | 只看该作者
谢谢朱老师,看来要要再学习一下ADO知识。

点击这里给我发消息

6#
发表于 2019-5-7 09:59:42 | 只看该作者
升级到adp可能问题会多一点, access链接表+sql,基本不会有太多的意外。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 01:39 , Processed in 0.082870 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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