【问题标题】:Microsoft.Jet.OLEDB.4.0 - Provider can not be found or it may not be installedMicrosoft.Jet.OLEDB.4.0 - 找不到或可能未安装提供程序
【发布时间】:2012-09-19 13:00:03
【问题描述】:

我创建了一个 Excel 宏,在其中我使用 Microsoft.Jet.OLEDB.4.0 在 Excel 工作表上触发查询。

它在我的机器上运行良好,但我的客户遇到了问题。 (请参阅随附的屏幕打印)

以下是我的连接对象的详细信息:

Dim cn
Set cn = CreateObject("ADODB.Connection")
With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & ThisWorkbook.FullName & "; Extended Properties=Excel 8.0"
    .Open
End With

请注意:我必须让代码在“Windows 7”中运行

【问题讨论】:

  • 任何人都请让图像正常工作。我附上了 2 张图片,但这里没有显示。
  • 您的机器是 32 位的,客户端机器是 64 位的吗?您的机器和客户端机器上的 os 和 excel 版本是什么?
  • 不知道客户端的版本。但我已经在 32 位和 64 位 Windows 7 上测试了该宏,并且在两者上都可以正常工作。
  • 如果屏幕截图来自客户端。然后主题看起来像windows vista。除非我们知道客户端操作系统和办公版本,否则很难向您推荐解决方案。您需要向您的客户询问这些信息。
  • @Esen:我问他,他说他正在使用 Windows 7。观察任务栏。 Vista中任务栏的高度并没有那么大。所以我认为只有Win7。 Excel版本是什么意思? 2010/2007 还是您的意思是 64 位/32 位?

标签: vba excel oledb jet


【解决方案1】:

提供程序将在 Window 7 Office x64 上失败,因为该平台不支持提供程序。

您需要安装 x64 Microsoft Access Database Engine 2010 Redistributable 并将连接字符串更改为 Provider=Microsoft.ACE.OLEDB.12.0

【讨论】:

  • 谢谢亚历克斯。我会告诉他安装相同的,并将更新的代码发送给您。
  • 我的回答不好,它会在 64 位 office 上失败,但在 x64 windows 上的 32 位 office 上工作
  • 嘿,它仍然无法在客户端的 PC 中运行。你能弄清楚可能是什么原因吗?
  • 我从来没有想过在 2021 年 8 月我仍然在处理 32 位软件!这个答案更证明了我的假设,我认为它已经解决了,但它不是我在工作中修复的工具。谢谢!
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 2010-11-12
相关资源
最近更新 更多