错误-2147221164在Windows 8.1 64位上调用recordset.Open()时未注册类

时间:2014-08-21 19:51:17

标签: vb6 windows-8.1 32bit-64bit

我在Windows 8.1 64位计算机上执行以下代码时收到错误-2147221164 Class Not Registered

Dim conn as ADODB.Connection
Set conn = New ADODB.Connection 
conn.Open dbConnectionString

Dim rsHere as ADODB.Recordset
Set rsHere = New ADODB.Recordset

' Error happens at this line
rsHere.Open strSql, conn, adOpenDynamic, adLockOptimistic

代码是在Windows XP机器上编译的,所以我不认为它与此处列出的问题相同:

"Class not registered" error when opening recordset using VB6

我在注册表中找到的ADODB版本是6.0,而我使用的版本是2.8。我在网上搜索并在某处看到Windows 8上的ADODB发生了重大变化,但我不确定这是否是造成我问题的原因。

有没有人知道我可以检查什么来消除这个错误?

1 个答案:

答案 0 :(得分:1)

从XP机器编译不同版本的Windows时,我遇到了类似的问题。 This may clarify some things

从页面(引用Microsoft知识库文章):

  

"某些ADO API在ADO 2.7及更高版本"

中依赖于平台

您还可以在"原因"中找到更多详细信息Here。部分。

作为解决方法,您可以尝试后期绑定ADO调用。就我而言,在Windows 7 SP1机器上进行编译就可以了。