请高手指点迷津
我做了个软件,打包后安装在其他电脑上,一启动就发生“类不支持自动化或不支持期望的接口 431”错误,我引用的是MIcrosoft ActiveX Data 2.5 Library, 后来改用MIcrosoft ActiveX Data 2.8 Library 后就正常了
。过了几天,又把那个软件安装在其他电脑上,有发生“类不支持自动化或不支持期望的接口 431”错误,这时我改引用MIcrosoft ActiveX Data 2.5 Library, 这才正常。
我就纳闷了,为什么同样的软件在不同的电脑里发生两种情况:一个是支持MIcrosoft ActiveX Data 2.5 Library,而另一个支持MIcrosoft ActiveX Data 2.8 Library 。
我所使用的数据库连接方法是:
Dim connectionstring As String
connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=manager;Data Source = " + App.Path + "\data.mdb"
Cn.Open connectionstring
Cn.Close
请高手指点指点,如何做,才能把软件做得一次性稳定,如此调来调去真麻烦
[解决办法]
那你可以使用自动化代替引用。
Set conn = CreateObject("ADODB.Connection")
...
[解决办法]
在出错的机器上安装MDAC2.8MDACTYP.EXE试试
[解决办法]
你的 Cn 应该定义成 Object 类型,如:
Dim Cn As Object
然后需要初始化,比如你原来的是用 New 初始化的,如:
Dim Cn As New Connection
现在应为定义成 Dim Cn As Object 所以初始化过程变成
Set Cn = CreateObject("ADODB.Connection")
这个过程可以放到Load 事件里,如:
Dim Cn As Object ' 定义连接对象
Private Sub Form_Load()
Set Cn = CreateObject("ADODB.Connection")
Cn.open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=manager;Data Source = " + App.Path + "\data.mdb"
' 定义数据集对像
Dim rs As Object
Dim count As Long
Set rs = CreateObject("ADODB.Recordset")
rs.open "select count(*) as c from 表", Cn, 3, 1
count = rs!c
rs.Close
Set rs = Nothing
MsgBox "查询表的记录数为:" & count
End Sub
Private Sub Form_Unload(Cancel As Integer)
Cn.Close
Set Cn = Nothing
End Sub