【问题标题】:Excel VBA Database connection error: Cannot open database '(unknown)'Excel VBA 数据库连接错误:无法打开数据库“(未知)”
【发布时间】:2016-06-05 20:34:02
【问题描述】:

我正在尝试使用 ADO DSN 连接到 Access 数据库。

StrPath = Sheets("Sheet1").Range("DB_location")
strCon = "DSN=MS Access Database;DBQ=" & StrPath & ";"

Set con = New ADODB.Connection
con.Open strCon

我可以在我的机器上毫无问题地连接到数据库。但是,当我尝试在另一台 PC 上运行这个确切的宏时,我在最后一行遇到了这个问题:

我认为这是由于数据库引擎,但从 Microsoft 网站安装“Microsoft Access Database Engine 2010 Redistributable”并没有解决这个问题。 VBA 编辑器中所有必要的引用都存在。 DB 或宏没有问题,因为我在另一台 PC 上检查过,但是这台特定的计算机遇到了这个问题。

【问题讨论】:

  • 您能检查一下StrPath 变量吗?确保它是完整路径并且 PC 可以连接到它。
  • 这是一个完整的路径。此宏适用于任何机器,但只有一台。我怀疑它可能与 Access 驱动程序有关,但无法完全弄清楚,因为我已经安装了上述驱动程序。

标签: vba excel ms-access-2010 ado


【解决方案1】:

变化

strCon = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & StrPath & ";"

解决了这个问题,这意味着问题在某种程度上是由 DSN 引起的。有没有人猜测这个问题可能来自哪里?

【讨论】:

  • 我认为当你指定一个 DSN 时,它必须存在于机器上。您的更改创建了无 DSN 连接。
  • 你知道我该如何检查这个,如果它丢失了,我该如何安装它?我认为下载“Microsoft Access Database Engine 2010 Redistributable”就足够了。
  • 这本身就值得一问。有 file DSN(在文件中)、machine 和 user DSN,它们进入注册表。
【解决方案2】:

我遇到了这个错误,它最终成为我的主键。当我在表中修复我的主键时,它就像一个魅力。

【讨论】:

    猜你喜欢
    • 2015-02-16
    • 2020-06-25
    • 1970-01-01
    • 2020-11-13
    • 2016-12-07
    • 2020-03-10
    • 1970-01-01
    相关资源
    最近更新 更多