Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

ACCESS 树功能对MSCOMCTL.OCX的引用是否类似编译写入mdb内部?

太溪  发表于:2017-02-22 12:42:40  
复制

ACCESS 我用到树功能,需要引用MSCOMCTL.OCX,几台电脑使用时,有些电脑常常出错打不开树形,后来发现是MSCOMCTL.OCX版本不同导致,我的电脑的MSCOMCTL.OCX的版本是6.1.98.34 2012年的,大小是1070152。换成低版本无法使用,于是只能将各台电脑的MSCOMCTL.OCX的版本统一为6.1.98.34,并使用
regsvr32 c:\windows\system32\MSCOMCTL.OCX 注册好。各台电脑使用正常。
但是后来,又莫其妙地出现问题,还是打不开树!弹出错误提示(错误号忘了,意思是树形加载失败),这错误提示倒不是提示未注册MSCOMCTL.OCX,因为确实已经引用了、注册了、检查MSCOMCTL.OCX文件及版本也无问题,反复反注册/注册,还是一样。
最后,什么都不动,只是以“视图--代码--工具--引用”中,将“Microsoft   Windows   Common   Controls   6.0” 前的勾取消,然后再又重新引用C:\WINDOWS\SYSTEM32\MSCOMCTL32.OCX,问题就好了!其他连网的电脑打开也继续正常。



详细使用情况:
多台电脑都是相同的MSCOMCTL.OCX的版本6.1.98.34 ,共享打开同一个mdb数据库,往往有时候某一台电脑树形功能出错。这个时候,将该mdb数据库离线拷贝到该电脑上进一步测试,保存在C盘上重命名为C.mdb,再复制一份在D盘上一份重命名为D.mdb。然后对C.mdb,使用VBA中去除引用再重新引用的方法,之后打开正常,但D.mdb0 是打开出错。然后将D.mdb剪切到C盘,将C.mdb剪切到D盘,即互换位置,仍然是C.mdb能正常打开,D.mdb打开时继续报错。
说明:
1、与Windows系统无关,因为是同一台电脑、同一个系统。
2、MSCOMCTL.OCX文件和版本无关,因为是同一台电脑。搜索也确实只发现只有一个MSCOMCTL.OCX文件,反复重新拷贝和注册也不能改变问题。
3、与注册表相关信息无关,也因为是同一台电脑、同一个注册表系统。
4、与对文件本身(C.mdb、D.mdb)的注册表信息无关,通过对调位置甚至互换文件名,出错的还是出错,正常的还是正常。


那么,问题就非常奇怪了,到底与什么有关?看来只能是重新引用的过程,导致mdb文件内部本身修改了。
VBA的“引用”,到底是一个什么过程?编制修改窗体的过程,是否类似程序“编译”的过程?将MSCOMCTL.OCX包含“写入”mdb内部?因为我经常需要修改升级mdb,难道是某些时候,修改窗体时(即重新“编译”时)出错?那为什么对同样的环境,又那么容易出错?而就算出错,其他连网电脑能正常打开,而只有某一台电脑出错?这时在出错电脑上打开共享的mbd数据库,重新“引用”,就全部正常了,其他正常的电脑还是继续正常。


问题到底是什么?求教高手。我用的是ACCESS2003.

 

Top
杨雪 发表于:2017-02-22 14:39:54

1.微软的office 2013版64位以后额版本取消了树控件 。

2.树控件这个本来不太稳定,如果环境改变,或者移动了文件夹等,有时候会提示树控件activex 等移动错误.

修改方法:打开窗体设计视图,把树控件 剪切,粘贴一下。

3.最好把声明树控件的那个类型改成  dim  xxx as  object.

4.开发过程中,尽量避免使用树控件。



MDZZ 发表于:2017-02-22 15:01:34

一个可免注册的Access增强控件库测试版[Access软件网] http://www.accessoft.com/article-show.asp?id=10141

有兴趣用下这里面的树



太溪 发表于:2017-02-22 20:04:47
感谢两位管理员。这里有两个问题,一是关于树的,确实是不稳定,加载慢,但我大量使用,积重难返。 二是,怎样理解VBA的引用?

杜超 发表于:2017-02-23 15:49:56


1.   新建个窗体,里面建个树,然后运行这个窗体,树问题就解决了





太溪 发表于:2017-02-23 17:49:09
谢谢楼上,现在没法测试了,不过,如果再出现,还是先取消引用,再重新引用来得更简单。我需要的是了解问题的根本原因,杜绝再出现这类问题。

太溪 发表于:2017-02-23 17:49:48
谢谢楼上,现在没法测试了,不过,如果再出现,还是先取消引用,再重新引用来得更简单。我需要的是了解问题的根本原因,杜绝再出现这类问题。

总记录:6篇  页次:1/1 9 1 :