gpt4 book ai didi

ms-access - Access 2007 : type mismatch when opening an ADO connection

转载 作者:行者123 更新时间:2023-12-03 08:05:58 26 4
gpt4 key购买 nike

我有一个 Access ADP 文件。我将后端数据库升级为指向 SQL 2005 服务器而不是 SQL 2000 服务器,并适本地更改了数据库连接信息。该文件在我自己的系统上运行得非常好,运行 Windows 7(64 位)和 Access 2007。在运行 Windows XP 和 Access 2007 的目标系统上,数据库的主要功能几乎立即因“运行时错误”而崩溃'13':类型不匹配”错误。

起初我以为我遇到了与 in this question over here 描述的相同的问题。 ,其中连接的默认定义是 DAO,但数据库使用的是 ADO 对象。但是,在查看代码时,连接的每个实例都被明确声明为“ADODB.Connection”。

导致错误的代码是这样的:

Public Sub Tools()
dim db as ADODB.Connection
dim sql as String

sql = "Select SSPatch from tblPlastech"
set db = CurrentProject.Connection ' THIS LINE CAUSES THE TYPE MISMATCH ERROR
dim rst as ADODB.RecordSet
set rst = New ADODB.RecordSet

rst.open sql, db, adOpenKeyset, adLockOptimistic
gsSSpath = rst!sspath
QUOTES = Chr(34)
rst.Close
set rst = Nothing
db.Close
set db = Nothing

End Sub

任何人都可以对这个问题有所了解吗?现在我被难住了。

最佳答案

这是我最终发现似乎相关的内容:

在 64 位 Windows 7 Pro 上,Microsoft MDAC 组件检查器工具告诉我,我正在运行 MDAC 版本“未知”,文件版本为 6.1.7600.16385 或 6.1.7601.17514(奇怪的是,与Windows 版本号)。另一方面,在 32 位 Windows XP 上,组件检查器说我正在运行版本“MDAC 2.8 SP1 ON WINDOWS XP SP3”,文件版本为 2.81.1132.0 或 2.81.3012.0,看起来像正确的 MDAC 版本号。

如果我在 XP 上更改“损坏”代码并因此强制重新编译,则产生运行时错误的完全相同的代码(上述类型不匹配 13 错误或运行时错误 430)将开始工作(当我将它复制到其他 XP 盒子或我的 Windows 7 盒子时继续工作)。如果我更改 Windows 7 机器上的代码并将其重新分发到 XP 机器,它会中断,尽管引用列表中的每个引用都具有相同的名称,并且指向相同磁盘位置中的相同文件。

编辑:
显然,这个版本编号是由于 Windows Vista/7 使用“WDAC”而不是“MDAC”,并且在 Win7 SP1 上编译的代码在低级操作系统上运行时被破坏的特定问题是一个已知问题,引用于 support.microsoft.com kb article 2517589this post on technet .建议的修复是切换到后期绑定(bind)、在下层系统上安装 KB 修复或链接到“向后兼容”版本的 ADO。

编辑2:
我在这一点上确定的修复是继续在我的 Win7SP1 机器上完成我的所有开发工作(早期绑定(bind)),然后在将整个应用程序部署到我的用户之前在 WinXP 机器上重新编译整个应用程序。

关于ms-access - Access 2007 : type mismatch when opening an ADO connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6190974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com