我在winxp sp3+vb6写了一个程序访问access 2003,本地运行都没有问题,用setup factory打包到别的机子运行就出现“运行时错误430:类不支持自动化或不支持期望接口”,应该怎么解决啊?Dim con As ADODB.Connection
Dim rst As ADODB.Recordset
Set con = New ADODB.Connection
Set rst = New ADODB.Recordset
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\xishu.mdb;Persist Security Info=False"
rst.ActiveConnection = con
rst.Open "select * from leixing where id=" & idp
Dim rst As ADODB.Recordset
Set con = New ADODB.Connection
Set rst = New ADODB.Recordset
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\xishu.mdb;Persist Security Info=False"
rst.ActiveConnection = con
rst.Open "select * from leixing where id=" & idp
但是似乎不是ADODB没有注册,因为ADODB在XP中是自带的;
你的问题应该是别控件或者引用没有注册。
那你XP系统应该有问题咯,这个部件是XP自带的(sp1好像没有带)将xp升级到sp3试试吧
Dim rst As Object
Set con = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\xishu.mdb;Persist Security Info=False"
rst.ActiveConnection = con
rst.Open "select * from leixing where id=" & idp
...
rst.Close
con.closeset rst=nothing
set con=nothing
'**********************************
主要原因还是因为两台机子上的ADO接口的问题,只有用后期绑定才能解决问题,
据说是微软强制编程者改用Win7,因为Win7下ADO的接口与XP下ADO的接口不一致造成
的,起始我发现就算是在XP下,只要你安装了VS2010sp1,在编译到未安装的机子上去运行
一样还是不行,所以究其原因可能还是ado版本造成的接口改变,没办法,只能用后期绑定
换用2.7的!同样问题,我就是这么解决的
刚开始只要不安装sp1就可以,现在即使不安装sp1,还会有其他补丁影响到,所以干脆还是在xp下编译算了
不打这个补丁之前,主程序能运行,但有局部报错,专门打了sp3和这个补丁后,程序已启动就报错(automation 错误),更悲催。
这个文件夹里面的问题 我在出现那个问题的电脑里把这个文件夹里的东西覆盖掉我开发的机器上的文件 再次编译 即可解决问题 开发机器上的ADO版本低一点 其它的就无所谓了
把工程放到别的装了VB6的机器上重新编译才正常。
1. 在部分xp下报错;
2. 在win7和visit下不能用;是这么解决的,
1. 使用低版本的ADO2.5版本
2. 在C:\Program Files\Common Files\System\ado 文件夹下和C:\WINDOWS\system32 文件夹下有ADO文件,
msado25.tlb,版本号2.81.3012.0,大小80KB。
打包的时候用这个就可以。
1.装VB
2.上源码
3.生成EXE
4.打开这个EXE运行正常了
感觉我的方法比较2,但绝对解决问题
为了版本兼容的问题,我以前都是在 Win98 下打包的(用 VB 自带的打包工具)。现在的机器不能安装 Win98 了,就在本地打包后,将原来在 Win98 下打包的 Support 文件夹下的旧版本系统文件覆盖新生成的 Support 下的同名文件,然后运行 Support 下 <安装文件名>.BAT 文件重新生成压缩包。