我在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发生了重大变化,但我不确定这是否是造成我问题的原因。
有没有人知道我可以检查什么来消除这个错误?
答案 0 :(得分:1)
从XP机器编译不同版本的Windows时,我遇到了类似的问题。 This may clarify some things
从页面(引用Microsoft知识库文章):
"某些ADO API在ADO 2.7及更高版本"
中依赖于平台
您还可以在"原因"中找到更多详细信息Here。部分。
作为解决方法,您可以尝试后期绑定ADO调用。就我而言,在Windows 7 SP1机器上进行编译就可以了。