Access TreeView树控件兼容性问题之奇葩偏方
- 2017-03-23 09:03:08
- 红尘如烟-Office交流网 原创
- 7422
Windows系统自带的通用控件库 MSCOMCTL.OCX 是一个很好的东西,尤其是TreeView树控件,用来处理多层级的树形结构数据非常有用。由于在Access中没有类似的控件,没有其它代替解决办法。甚至不像ListView可以用列表框或者子窗体代替,Toolbar可以用按钮、菜单代替。
但自从Win7开始,不论是Win8、Win10,MSCOMCTL.OCX通用控件库中的控件就经常出现兼容性问题。即开发环境下的版本号和使用环境下的版本号,哪怕只有很小的差别,像6.1.9834和6.1.9818这样,都会出现异常不能使用。
我们这里仍然以TreeView控件为例,不包括本身控件库安装有问题不能使用的情况,一般可能会遇到的兼容性问题有会以下两类:
- 不能响应键盘、鼠标事件。可以正常加载数据到树控件,但不论是鼠标还是键盘,均无法触发相应的事件,比如在NodeClick事件中写了相应处理代码,但点击之后没有任何反应。
- 键盘、鼠标事件一触发就报错。点击鼠标、按键,甚至鼠标在树控件上移动,事件可以响应,但一触发就报错,导致不能正常使用。
这些问题发生的频率非常高!尤其是当一些在实际中已经在用的Access程序来说,遇到实在让人火冒三丈,因为业务部门等着马上要用呢!这是在坑爹呢还是在坑爹呢!
对于这个问题有什么解决办法呢?总结下来不外乎下面几种:
- 修改控件库。这个控件库是微软的,第一优先是希望微软能在更新系统时解决掉该问题,但从Win7到Win10,该问题仍然顽固地存在,看来微软是指望不上了。而我们不可能去修改控件库,甚至通过一些破解手段修改了,但会导致签名失效,还是不便于使用。
- 不使用树控件。但正如本文一开头说的那样,有些多层数据的展示和处理,在用过了树控件之后,现在要让人不用,实在难受。就像习惯了电气化的现代人,突然没电了,要点油灯、蜡烛照明,这!这!这!这日子不过了!
- 使用其它第三方树控件。其它第三方树控件的问题在于,有可能是要额外付费的。即使找到免费的了,由于属性方法事件等接口不同,还需要重新编写程序。另外使用第三方控件需要安装,而一些规范化的企业里面,是禁止用户自行安装软件的。
看到这里你是不是感到绝望了?是不是感觉自己被掏空了?感觉不会再爱了?
这么想地话,你还是太年轻,图样图森破!
世上无难事,只怕有些人!要相信希望总会有的,奇迹是会出现的,在那个迷茫的午夜,上帝向你走来,赐给了你一道光!
上帝说:解决这个问题,需要用到这一招如来神掌,我现在就将如来神掌的秘籍传授给你!
------------------------------------------如来神掌秘籍分割线--------------------------------------
1. Ctrl+G打开立即窗口,输入以下代码并回车,将窗体另存为文本文件。
[code]SaveAsText acForm, "Form1", CurrentProject.Path & "\Form1.txt"[/code]注意不要直接把代码原样抄去就用,
要把Form1改成你实际的窗体名称!
要把Form1改成你实际的窗体名称!
要把Form1改成你实际的窗体名称!
重要的事情说三遍。
2. 用记事本打开刚才生成的文件文件 Form1.txt,找到树控件所在的位置(如果内容比较多,可以搜索树控件名称)。
3. 将从 OleData = Begin 这一行开始,直到 End 结束的OleData部分全部选中:
4. 将上面选中的部分替换成附件中的内容(由于发帖限制不能直接放数据):兼容性好的TreeView控件OleData.zip
5. 回到Access立即窗口,再次输入以下代码并回车,将文本文件加载为窗体:
[code]LoadFromText acForm, "Form1", CurrentProject.Path & "\Form1.txt"[/code]打完收工。
重新打开有树控件的窗体,你会发现惹人厌的树控件不能正常使用的问题没有了!换台电脑,也不再出了!
郑重声明:
该方法本公子亲测有效,也用来救了几次火。但由于测试样本有限,加上本公子也还没有完全弄懂原理,所以不保证百分之百有效!因此这里只当作一个偏方分享出来给大家,仅供参考。
admin在 2017/03/23 9:18:39 回复-------------------
赞
yfy629在 2017/03/23 9:30:57 回复-------------------
如烟神武!!!
roych在 2017/03/23 9:41:00 回复-------------------
红尘威武霸气外露啊!
真主在 2017/03/27 10:49:18 回复-------------------
谢谢,谢谢!正在愁
tmtony在 2017/03/28 15:01:58 回复-------------------
saveastext 里面藏着 access 很多秘密!
accben在 2017/03/30 10:10:32 回复-------------------
经常遇到,试试效果看看。
谢谢红尘大师。
YXH_YXH在 2017/07/25 16:02:11 回复-------------------
好多谢分享!!!!!!!!!
(微软Activex控件-相关文章技巧链接):
三小时掌握TREEVIEW控件
[经验技巧]Access中使用微软Treeview树形控件的烦恼
Access的Treeview在 MS10-036 更新后无法使用的问题
Access Treeview 树控件MSCOMCTL.OCX 在更新 KB 2687323后无法正
windows 7或其它windows 64位系统里Treeview注册的问题(mscomctl
Access中treeview不能使用或提示没有版权(License)的解决办法
Access中使用TreeView 树形控件 详细讲解(Excel Word Office都可
Access2010使用Treeview出现问题的解决办法(适合32位及64位)
- office课程播放地址及课程明细
- Excel Word PPT Access VBA等Office技巧学习平台
- 将( .accdb) 文件格式数据库转换为早期版本(.mdb)的文件格式
- 将早期的数据库文件格式(.mdb)转换为 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 数据库引擎和访问连接引擎以阻止对远程数据库的访问(remote table)
- Access 365 /Access 2019 数据库中哪些函数功能和属性被沙箱模式阻止(如未启动宏时)
- Access Runtime(运行时)最全的下载(2007 2010 2013 2016 2019 Access 365)
- Activex控件或Dll 在某些电脑无法正常注册的解决办法(regsvr32注册时卡住)
- office使用部分控件时提示“您没有使用该ActiveX控件许可的问题”的解决方法
- RTF文件(富文本格式)的一些解析
- Access树控件(treeview) 64位Office下出现横向滚动条不会自动定位的解决办法
- Access中国树控件 在win10电脑 节点行间距太小的解决办法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 树控件 ListView列表等64位MSCOMMCTL.OCX控件下载
- VBA或VB6调用WebService(直接Post方式)并解析返回的XML
- 早期PB程序连接Sqlserver出现错误
- MMC 不能打开文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版
- sql server连接不了的解决办法
- localhost与127.0.0.1区别
- Roych的浅谈数据库开发系列(Sql Server)
- sqlserver 自动备份对备份目录没有存取权限的解决办法
- 安装Sql server 2005 express 和SQLServer2005 Express版企业管理器 SQLServer2005_SSMSEE
联系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |