我在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文件)。
当我在计算机上运行该软件时,它运行良好。
但是,当在另一台计算机上测试时,会显示一条错误消息,指出“无法打开使用以前版本的应用程序创建的数据库。”
第三行代码后显示错误消息。
你能否指出我的错误在哪里以及如何解决问题。
谢谢。
答案 0 :(得分:2)
当我在计算机上运行软件时,它运行良好。
但是,当在另一台计算机上测试时,会出现一条错误消息,提示"无法打开使用以前版本的应用程序创建的数据库。"
当不同的计算机安装了不同版本的Access数据库引擎时,可能会发生这种情况。具体来说,如果
,将出现错误消息Access 2013删除了对Access 97文件格式的支持。
如果您的连接字符串包含
,这可能会有些混乱Provider=Microsoft.ACE.OLEDB.12.0
因为Access数据库引擎的Access 2007(12.0),Access 2010(14.0)和Access 2013(15.0)版本全部注册" 12.0&#34下的提供商;名称提供一定程度的向后兼容性。因此,对于任何具有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
这就是为什么同一个第三方应用程序可以在一台计算机上打开.mdb文件(安装了Access 2007或2010)但在另一台计算机上没有打开(安装了Access 2013)。