Office中国论坛/Access中国论坛

标题: TreeView树控件兼容性问题之奇葩偏方 [打印本页]

作者: 红尘如烟    时间: 2017-3-23 09:03
标题: TreeView树控件兼容性问题之奇葩偏方
本帖最后由 红尘如烟 于 2017-3-23 09:06 编辑

    Windows系统自带的通用控件库 MSCOMCTL.OCX 是一个很好的东西,尤其是TreeView树控件,用来处理多层级的树形结构数据非常有用。由于在Access中没有类似的控件,没有其它代替解决办法。甚至不像ListView可以用列表框或者子窗体代替,Toolbar可以用按钮、菜单代替。

    但自从Win7开始,不论是Win8、Win10,MSCOMCTL.OCX通用控件库中的控件就经常出现兼容性问题。即开发环境下的版本号和使用环境下的版本号,哪怕只有很小的差别,像6.1.9834和6.1.9818这样,都会出现异常不能使用。

    我们这里仍然以TreeView控件为例,不包括本身控件库安装有问题不能使用的情况,一般可能会遇到的兼容性问题有会以下两类:

    这些问题发生的频率非常高!尤其是当一些在实际中已经在用的Access程序来说,遇到实在让人火冒三丈,因为业务部门等着马上要用呢!这是在坑爹呢还是在坑爹呢!

    对于这个问题有什么解决办法呢?总结下来不外乎下面几种:


    看到这里你是不是感到绝望了?是不是感觉自己被掏空了?感觉不会再爱了?
    这么想地话,你还是太年轻,图样图森破!
    世上无难事,只怕有些人!要相信希望总会有的,奇迹是会出现的,在那个迷茫的午夜,上帝向你走来,赐给了你一道光!
    上帝说:解决这个问题,需要用到这一招如来神掌,我现在就将如来神掌的秘籍传授给你!

------------------------------------------如来神掌秘籍分割线--------------------------------------
1. Ctrl+G打开立即窗口,输入以下代码并回车,将窗体另存为文本文件。
  1. SaveAsText acForm, "Form1", CurrentProject.Path & "\Form1.txt"
复制代码
注意不要直接把代码原样抄去就用,
要把Form1改成你实际的窗体名称!
要把Form1改成你实际的窗体名称!
要把Form1改成你实际的窗体名称!
重要的事情说三遍。

2. 用记事本打开刚才生成的文件文件 Form1.txt,找到树控件所在的位置(如果内容比较多,可以搜索树控件名称)。

3. 将从 OleData = Begin 这一行开始,直到 End 结束的OleData部分全部选中:

4. 将上面选中的部分替换成附件中的内容(由于发帖限制不能直接放数据):[attach]60990[/attach]

5. 回到Access立即窗口,再次输入以下代码并回车,将文本文件加载为窗体:
  1. LoadFromText acForm, "Form1", CurrentProject.Path & "\Form1.txt"
复制代码
    打完收工。

    重新打开有树控件的窗体,你会发现惹人厌的树控件不能正常使用的问题没有了!换台电脑,也不再出了!

郑重声明:
    该方法本公子亲测有效,也用来救了几次火。但由于测试样本有限,加上本公子也还没有完全弄懂原理,所以不保证百分之百有效!因此这里只当作一个偏方分享出来给大家,仅供参考。



(微软Activex控件-相关文章技巧链接):
Access TreeView树控件兼容性问题之奇葩偏方


作者: admin    时间: 2017-3-23 09:18


作者: yfy629    时间: 2017-3-23 09:30
如烟神武!!!
作者: roych    时间: 2017-3-23 09:41
红尘威武霸气外露啊!
作者: 真主    时间: 2017-3-27 10:49
谢谢,谢谢!正在愁
作者: tmtony    时间: 2017-3-28 15:01
saveastext 里面藏着 access 很多秘密!
作者: accben    时间: 2017-3-30 10:10
经常遇到,试试效果看看。
谢谢红尘大师。
作者: YXH_YXH    时间: 2017-7-25 16:02
好多谢分享!!!!!!!!!
作者: boon    时间: 2019-5-23 23:08
谢谢红尘大师




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3