vb.net - "Cannot open a database created with a previous version of your application"显示 VB.NET 程序尝试使用 OleDBConnection 打开 MDB 文件时

标签 vb.net ms-access oledb

我在 32 位 Windows 7 操作系统中使用 VB.NET 创建了一个软件。

它包含以下代码行:

 Dim cn As New OleDbConnection
 cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & fileNameStr & ";Jet OLEDB:Database Password=xxxxxxx"
 cn.Open()

这些代码打开受密码保护的 MDB 文件(Microsoft Access 文件)。

当我在计算机上运行该软件时,它运行良好。

但是,当在另一台计算机上进行测试时,会出现一条错误消息,指出“无法打开使用应用程序的早期版本创建的数据库。”

错误消息显示在第三行代码之后。 enter image description here

您能否建议我的错误在哪里以及如何解决问题。

谢谢。

最佳答案

When I run the software in my computer, it works well.

However, when it is tested in another computer, an error message appears saying "Cannot open a database created with a previous version of your application."

当不同的计算机安装了不同版本的 Access 数据库引擎时,可能会发生这种情况。具体来说,如果出现错误消息,就会出现

  • .mdb 文件采用 Access 97 格式,并且
  • 计算机装有 Access 2013(或更高版本)版本的 Access 数据库引擎。

Access 2013 删除了对 Access 97 文件格式的支持。

如果您的连接字符串包含,这可能会有点令人困惑

Provider=Microsoft.ACE.OLEDB.12.0

因为 Access 2007 (12.0)、Access 2010 (14.0) 和 Access 2013 (15.0) 版本的 Access 数据库引擎都注册在“12.0”名称下的提供程序以提供某种程度的服务的向后兼容性。因此,对于任何装有 Access 2007+ 的给定计算机,您可以指定

Microsoft.ACE.OLEDB.12.0

但是你实际使用的是

Access 2007 计算机上的

Microsoft.ACE.OLEDB.12.0
Access 2010 计算机上的 Microsoft.ACE.OLEDB.14.0
Access 2013 计算机上的 Microsoft.ACE.OLEDB.15.0

这就是为什么同一个第三方应用程序可以在一台计算机(安装了 Access 2007 或 2010)上打开 .mdb 文件,但不能在另一台计算机(安装了 Access 2013)上打开 .mdb 文件。

关于vb.net - "Cannot open a database created with a previous version of your application"显示 VB.NET 程序尝试使用 OleDBConnection 打开 MDB 文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27856117/

相关文章:

.net - 在多行文本框中格式化字符串

vb.net - 从数组获取多个索引值

ms-access - MS Access因错误而崩溃

c# - 在 C# 中使用 OleDB 读取 excel 文件?

.net - 其他 PC 无法识别的数据库格式

excel - 从 Access VBA 退出 Excel session 而不保存

ms-access - MS-Access添加其他链接表

c# - 从数据库中消除重复项

c# - .NET DataTable 正在处理 Excel 文件中的日期字段

vb.net - 我可以在迭代(使用 For Each)时安全地修改 VB 集合的项目吗?