【经验共享】关于“运行时错误430:类不支持自动化或不支持期望接口”问题的解决
本帖最后由 iamggggs 于 2012-04-05 14:14:20 编辑 最近写了一个单位的考勤管理程序,开发平台用VB6 sp6+win7 sp1+office 2010(主要用到Access和Excel),机制比较简单,比较多的用到adodc和adodb来查询、编辑Access数据库(accdb,这也是后来问题的症结所在),然后用DataGrid显示,Excel输出……用accdb的原因很简单,因为开发机上已有现成的office2010正版,而且开发之初查阅了一下资料,说用“Microsoft.ACE.OLEDB.12.0”连接accdb没问题,在最开始写代码的时候的确也没发现有问题,直到程序完成,在开发机上运行都正常。
接下来,打包(直接用大家很推崇的setup factory),随手给一台xp+sp2机器运行,报错,具体见这贴
的19、20楼,然后找了台2003以及同事的win7+sp1,无论我更换什么版本的msado库打包,那个“运行时错误430”如同鬼魅一般跟随,直接昏死。直到今天中午,灵感迸发,直接把accdb换成mdb(2003格式,为此专门装了office2007,因为Access2010不支持将accdb转换成mdb,我日!),引擎换成“Microsoft.Jet.OLEDB.4.0”,打包,测试,成功!!!!呢嘛啊,当时真的是泪流满面啊!
经验:一开始一直觉得是adodb库版本的问题,有人说置换目标机的ado库,有人说安装MDAC,可无论是xp sp3还是win2003 sp2,都自带了MDAC的2.8版本(貌似win7也自带?),你想装系统也不让装,除非装低版本的。自己VB6本来就没学多久,以后准备上.net平台算了,那样估计没现在这么痛苦了。啰啰嗦嗦写了一大段,希望给新手们一点经验吧,google一下遇到这个问题的还蛮多的。
[解决办法]
你真幸运,我也是用“Microsoft.Jet.OLEDB.4.0” 的,但到没有装过VB6的机器上,都出现运行时错误:430,找到问题的根本,是Connection 对象,一创建就出错,这表明的ADO组件库有问题,但安装过MADC 2.7 也一样出问题,搞不懂。以前没试过有这样的问题。。
[解决办法]
ado2.5可以
[解决办法]
win7 32 xp 32. vb6各自编译都只能在相同的系统上运行。win7 编译放在XP上就出430ADO new recordset 错误,用createObject可以正常。。。。。。。。。。。。。
现在折中的办法是XP,win7,各编译了一次~~~
mdac2.8mdactyp.exe安装时提示版本不兼容
尝试楼主的方案中。。。。