【问题标题】:How can I connect to a ms-access database from vba in excel?如何在 Excel 中从 vba 连接到 ms-access 数据库?
【发布时间】:2019-07-12 15:40:43
【问题描述】:

我正在尝试使用 VBA 代码从 Excel 连接到 ms-access 数据库,但我收到错误消息“密码无效”。我订阅了 Office 365。

我试过只有数字的密码,只有单词,放一个“;”密码末尾的字符。

Set cn = CreateObject("ADODB.Connection")
conexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb; Jet OLEDB:Database Password=MyDbPassword"
cn.Open conexion

【问题讨论】:

  • 尝试将accdb更改为mdb并检查是否有效。或者尝试打印MyDbPassword 中的值,看看它是什么。
  • 愚蠢的问题,我假设您将MyDbPassword 更改为您的实际密码,将C:\myFolder\myAccessFile.accdb 更改为您的实际文件路径?

标签: vba ms-access


【解决方案1】:

来自Connectionstrings.com

微软 ACE OLEDB 12.0

标准安全

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb; Persist Security Info=False;

有数据库密码

这是当您使用 Access 中的“设置数据库密码”功能使用密码保护 Access 2007 - 2013 数据库时使用的连接字符串。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb; Jet OLEDB:Database Password=MyDbPassword;

一些关于密码长度超过 14 个字符的问题的报告。还有一些字符可能会引起麻烦。如果您遇到问题,请尝试将密码更改为包含正常字符的短密码。

注意!报告说,使用 Access 2010 - 2013 默认加密方案加密的数据库不适用于此连接字符串。在访问中;尝试选项并选择 2007 加密方法。那应该使它起作用。我们不知道任何其他解决方案。如果有其他解决方案,请与我们联系!


根据他们的建议,尝试将密码更改为 14 个字符以下的短密码。

此外,在您的示例中,您确实在密码后省略了分号 ;

【讨论】:

    【解决方案2】:

    解决了。我引用了here发布的这个解决方案:

    "(...)首先,删除密码,然后进入Access->File->Options->Client Settings->Advanced,勾选“use legacy encryption”。现在我们可以重新创建密码并试一试。”

    请记住,此选项不如“使用预定加密”安全

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      相关资源
      最近更新 更多