Microsoft.Jet.OLEDB.4.0 “找不到提供程序。它可能没有正确安装。”错误
Posted
技术标签:
【中文标题】Microsoft.Jet.OLEDB.4.0 “找不到提供程序。它可能没有正确安装。”错误【英文标题】:Microsoft.Jet.OLEDB.4.0 "Provider cannot be found. It may not be properly installed." Error 【发布时间】:2014-01-28 22:27:20 【问题描述】:我正在尝试通过登录时使用的脚本连接到 Access 数据库,但不断收到“找不到提供程序”。错误。从我发现的错误来看,它与尝试使用 64 位 Office 运行它有关,32 应该没问题。但是我们在 Windows 7 Pro x64 上运行 32 位 Office。我还找到了this,但是在使用 System32/SysWOW64 中的两个 wscript.exe 运行它时,我得到了同样的错误。我的连接代码如下,以防我在那里做错了什么。任何帮助将不胜感激。
Dim strDBPath: strDBPath = "\\server\myDB.mdb"
Dim oDBConn: Set oDBConn = CreateObject("ADODB.Connection")
Dim strConn: strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath
oDBConn.Open strConn
【问题讨论】:
您的代码看起来不错并且工作正常。在带有 Office 2010 [x86] 的 Windows 7 SP1 [x64] 上测试。是的,因为你有 x64 系统,你应该使用 "C:\Windows\SysWOW64\wscript.exe test.vbs" 运行你的脚本 另外,你可以将数据库设为本地并再试一次吗?复制你的数据库,让我们说 C:\Temp\ 然后再试一次。 你也可以尝试不同的提供,例如:“Microsoft.ACE.OLEDB.12.0”? @Zam 我也尝试了 ACE.OLEDB.12.0 并且它给了我同样的错误(我猜它没有安装,如果是这样的话,它不会安装在任何运行此脚本的机器。我可以创建类似 SCCM 包的东西,将其推送到所有机器)。无论数据库是否是本地的,我都会遇到同样的错误。 【参考方案1】:如果您在 x64 服务器上运行 IIS,则需要在您的池中启用 32 位应用程序。
转到您的服务器管理器 > 角色 > Web 服务器 (IIS) > Internet 信息服务 > (服务器) 主页 > 应用程序池 > 操作窗格单击高级设置,启用 32 位应用程序 > 更改为 True。
【讨论】:
以上是关于Microsoft.Jet.OLEDB.4.0 “找不到提供程序。它可能没有正确安装。”错误的主要内容,如果未能解决你的问题,请参考以下文章
将连接字符串从 Microsoft.Jet.OLEDB.4.0 转换为 Microsoft.ACE.OLEDB.12.0 提供程序
使用 microsoft.jet.oledb.4.0 从 paradox db 过滤日期字段
Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册
Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别