设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: 三个太阳
打印 上一主题 下一主题

[宏/菜单/工具栏] 代码正确运行了,但treeview为何没有正常加载数据呢?

[复制链接]
11#
 楼主| 发表于 2015-7-8 10:37:47 | 只看该作者
三个太阳 发表于 2015-7-8 10:32
老师你看看我的例子。

这个附件里面有,您看看
12#
发表于 2015-7-8 13:14:51 | 只看该作者
试了一下,有点麻烦.建议你看看todaynew斑竹的相关示例

你的代码能装到年级一层还算不错.它的判断方法返回的结果不能保证唯一.index挺陌生,好像没用过,大概是判断节点是否存在的,没猜错不存在的返回值是-1吧.如果你非有使用这种方式的爱好,建议你用判断路径的方法来试试.我测试可行,效果:

本帖子中包含更多资源

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

x
13#
发表于 2015-7-8 14:01:44 | 只看该作者
缺乏子节点的添加操作,供参考。
http://www.office-cn.net/thread-119551-1-1.html
请留意里面的AddChildNode函数。
以下是kingkang的实例,里面使用了递归算法,相对更复杂些许。
http://www.office-cn.net/thread-66634-1-1.html
14#
 楼主| 发表于 2015-7-8 15:34:26 | 只看该作者
风中漫步 发表于 2015-7-8 13:14
试了一下,有点麻烦.建议你看看todaynew斑竹的相关示例

你的代码能装到年级一层还算不错.它的判断方法返 ...

是的,index属性是返回某个节点的索引值!我的代码就是用index判断是否已经存在该节点,若不存在,这时候系统会提示错误的所以我才会用on error resume next 语句来让他继续执行以添加;若存在这条记录了则不再添加了。不管怎样学生姓名都是要加上去的。
总体感觉思路还是蛮清晰的,但就是不知道这种方法的漏洞在哪里?
15#
 楼主| 发表于 2015-7-8 15:38:32 | 只看该作者
roych 发表于 2015-7-8 14:01
缺乏子节点的添加操作,供参考。
http://www.office-cn.net/thread-119551-1-1.html
请留意里面的AddChil ...

谢谢roych老师,能帮学生指点一下我的代码的漏洞在哪儿吗?理论上我感觉确实没问题。
16#
发表于 2015-7-8 15:52:50 | 只看该作者
三个太阳 发表于 2015-7-8 09:41
版主说得对,我在网上看见了一个示例,表的结构和这个一模一样,我的代码和他的不同,他的可以运行!我感 ...

http://www.office-cn.net/thread-120167-1-1.html
17#
发表于 2015-7-8 16:20:49 | 只看该作者
三个太阳 发表于 2015-7-8 15:38
谢谢roych老师,能帮学生指点一下我的代码的漏洞在哪儿吗?理论上我感觉确实没问题。

键值(key)有问题,请对比你的代码。
  1. Private Sub Command1_Click()
  2. Dim rs As Recordset
  3. Set rs = CurrentDb.OpenRecordset("select * from 学生表")
  4. On Error Resume Next '此句是用来处理下面循环里面Index语句的
  5. ActiveXCtl0.nodes.Add , , "学生管理", "学生管理"
  6. With rs
  7. Do Until .EOF
  8.         If ActiveXCtl0.nodes(.Fields(2)).Index < 0 Then
  9.         ActiveXCtl0.nodes.Add "学生管理", 4, "K" & .Fields(2), .Fields(2)
  10.         End If
  11.         If ActiveXCtl0.nodes(.Fields(3)).Index < 0 Then
  12.         ActiveXCtl0.nodes.Add "K" & .Fields(2), 4, "KK" & .Fields(3), .Fields(3)
  13.         End If
  14.         ActiveXCtl0.nodes.Add "KK" & .Fields(3), 4, "KKK" & .Fields(1), .Fields(1)
  15. .MoveNext
  16. Loop
  17. End With
  18. End Sub
复制代码
18#
 楼主| 发表于 2015-7-8 16:44:38 | 只看该作者
本帖最后由 三个太阳 于 2015-7-8 16:46 编辑
roych 发表于 2015-7-8 16:20
键值(key)有问题,请对比你的代码。

难道是节点的K值不能和节点的text值一样?不过老师的运行结果是这个:

本帖子中包含更多资源

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

x
19#
发表于 2015-7-8 16:48:07 | 只看该作者
本帖最后由 roych 于 2015-7-8 16:52 编辑
三个太阳 发表于 2015-7-8 16:44
难道是节点的K值不能和节点的text值一样?

key值是唯一的。树控件也是根据key值来判断节点的从属关系的。事实上,也只有在忽略掉错误提示时,这段代码才可以运行,否则还是回出错的。
20#
发表于 2015-7-8 16:53:44 | 只看该作者
roych 发表于 2015-7-8 16:20
键值(key)有问题,请对比你的代码。

好,斑竹.
看了这段代码,觉的这个地方拿不准:
       If ActiveXCtl0.nodes(.Fields(3)).Index < 0 Then
            ActiveXCtl0.nodes.Add "K" & .Fields(2), 4, "KK" & .Fields(3), .Fields(3)
        End If
在装2年级的一班时, ActiveXCtl0.nodes(.Fields(3)).Index会不会给出已存在的情况.

如果测试通过了,那就是我看错了.呵呵,请斑竹告知.谢谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 16:56 , Processed in 0.091899 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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