Access 2013 - 无法打开使用以前版本的应用程序创建的数据库

Posted

技术标签:

【中文标题】Access 2013 - 无法打开使用以前版本的应用程序创建的数据库【英文标题】:Access 2013 - Cannot open a database created with a previous version of your application 【发布时间】:2014-06-09 08:41:38 【问题描述】:

我有一个 10 多年前创建的 Access 数据库。

我有非常重要的数据,我认为它可以在 Access 2007 或更早版本中打开。目前我的桌面上有 Access 2013,使用此版本打开文件会导致错误“无法打开使用以前版本的应用程序创建的数据库”

这个问题的解决方案是什么?有没有什么地方可以下载旧版的MS Access?

【问题讨论】:

【参考方案1】:

我刚刚使用 Excel 2016 打开了 Access 2003 表。

    打开一个新工作表 转到数据选项卡 点击“从访问”菜单项 选择数据库的 .mdb 文件 在打开的“数据链接属性”框中,切换到“提供者”选项卡 选择“Microsoft Jet 4.0 OLE DB Provider” 点击下一步 重新选择数据库的 .mdb 文件(更改 Provider 时会忘记) 点击确定 从出现的“选择表”对话框中,选择要导入的表。

【讨论】:

终于!我试图从一个从旧 .mdb 中提取数据的朋友那里获得的 Excel 中运行一个宏,但我无法使用“Microsoft.ACE.OLEDB.12.0”提供程序运行它,但我能够使用“ Microsoft Jet 4.0 OLE DB 提供程序" 它在 Excel 2016 中对我不起作用,它会写入与 Access 中相同的错误。 如果有人偶然发现同样的问题。您可以使用MDB admin。 Excel 不能很好地处理大文件。根据我的经验,它会因 370mb 的文件而崩溃。【参考方案2】:

您可以使用 http://www.alexnolan.net/software/mdb_viewer_plus.htm 的 MDB Viewer Plus 来查看或编辑您的旧版本数据库

【讨论】:

这个工具很好用,我相信我已经在 Access 97 & 2000 数据库上成功使用过它。它的 GUI 有点古怪,但功能齐全。【参考方案3】:

正如另一个答案中所述,微软的官方说法是在 Access 2003 中打开一个 Access 97 文件并将其升级为更新的文件格式。不幸的是,从现在开始,许多人将难以获得 Access 2003(或 Access 2013 之前的任何其他版本,或任何最新版本)的合法副本。

在这种情况下,一个可能的解决方法是

安装 32 位版本的 SQL Server Express Edition,然后 让 SQL Server 导入实用程序使用 Jet* ODBC 将表导入 SQL Server。

我刚刚使用 32 位版本的 SQL Server 2008 R2 Express Edition 进行了尝试,它对我有用。 Access 2013 坚决拒绝任何与 Access 97 文件有关,但 SQL Server 毫无怨言地导入了表。

此时,您可以将表从 SQL Server 导入 Access 2013 数据库。或者,如果您的目标只是从 Access 97 文件中获取数据,那么您可以继续在 SQL Server 中使用它,或者将其移动到其他平台,或其他任何平台。

*重要提示:需要使用较旧的 Jet ODBC 驱动程序进行导入...

Microsoft Access Driver (*.mdb)

... 随 Windows 一起提供,但仅适用于 32 位应用程序。较新的 Access 数据库引擎 ("ACE") ODBC 驱动程序的 Access 2013 版本...

Microsoft Access Driver (*.mdb, *.accdb)

也拒绝读取 Access 97 文件(问题中引用了相同的错误消息)。

【讨论】:

【参考方案4】:

非编程回答:下载并安装旧版本的 Access 数据库引擎(例如 2010 或 2007,而不是 2013)。打开 Excel,导航到功能区上的“数据”选项卡,然后单击“从 Access”。将数据导入 Excel,然后导出到 accdb 文件或对其执行任何操作。笔记!打开 Access 2013 将触发重新安装 2013 引擎,因此请保留 2007/2010 安装 .exe。

编程答案:安装旧版本的 Access 数据库引擎后,您可以在多个编程环境(C#、VBA、VBScript 等)中使用 OLEDB 连接来读取/写入和移动 Access数据。 Gord Thompson 的回答还提供了跳转到 SQL 服务器并返回的选项。

See This post for a similar problem using an OLEDB connection

Connectionstrings.com is a great resource

See this post for how to setup an OLEDB connection using C#

【讨论】:

【参考方案5】:

您可以执行所有这些操作,但根本问题将是与库文件的 Windows 更新不兼容。最终你会再次遇到问题。 .ocx 和 .dll 文件将被破坏和替换:您的数据库将无法应对新版本,并且无法构建或意外故障。

【讨论】:

【参考方案6】:

安装Microsoft 2007 Access Runtime

来自https://www.microsoft.com/en-US/download/details.aspx?id=4438

【讨论】:

链接失效了,你可以google一下。安装后,尝试从最新版本的 Access 中再次打开数据库,它会起作用。【参考方案7】:

如果您只是想从 mdb 中包含的表中提取数据,请使用 Excel 和 ODBC(数据选项卡...获取外部数据...从其他来源...从数据连接向导...其他/高级...Microsoft Jet X.X OLE DB Provider...pick your db...pick your table(s) and voila! Data Imported. 然后保存工作簿,然后可以链接或导入到较新版本的有权建立一个新的数据库。

【讨论】:

【参考方案8】:

Google Drive 具有打开 MDB 文件的扩展程序。

我不确定 BLOB 的效果如何,因为我无法显示我的图像,但所有文本都出现了。

【讨论】:

这仅适用于大小不超过 40 MB 的文件【参考方案9】:

对于 '97 数据库...

    在 Access 2003 中打开 Access 97 数据库。 在工具菜单上,单击数据库实用程序,单击转换数据库, 然后点击访问 2002-2003 文件格式。 输入数据库的名称,然后单击“保存”。 退出访问 2003。 在 Access 2013 中打开数据库。 在文件选项卡上,单击另存为,选择 Access Database (*.accdb), 然后单击另存为。在“另存为”对话框中,单击“保存”。

所有其他版本:

要将 Access 2000 或 Access 2002 - 2003 数据库 (.mdb) 转换为 .accdb 文件格式,您必须先使用 Access 2007、Access 2010 或 Access 2013 打开数据库,然后将其保存在 . accdb 文件格式。

    单击文件,然后单击打开。

    单击您创建的 Access 2000 或 Access 2002 - 2003 数据库 (.mdb) 想要转换。

    注意如果出现“数据库增强”对话框,则数据库使用的文件格式早于 Access 2000。要继续,请参阅将 Access 97 数据库转换为 .accdb 格式部分。

    单击文件,单击另存为,然后单击将数据库另存为。

    选择 Access 文件类型,然后单击另存为。

如果单击“另存为”时打开了任何数据库对象,Access 会提示您在创建副本之前关闭它们。单击“是”使 Access 关闭对象,或单击“否”取消整个过程。如果需要,Access 还会提示您保存任何更改。

    在“另存为”对话框中,在“文件名”框中键入文件名, 然后点击保存。

Access 创建数据库的副本,然后打开该副本。 Access 会自动关闭原始数据库。

来自MS Office Documentation

【讨论】:

这不能回答问题。问题涉及他们无法在 Access 2013 中打开文件。当您打开文件(双击 .mdb)时,它会打开 MS Access,并显示错误消息:Cannot open a database created with a previous version of your application.。按下帮助按钮然后转到:msdn.microsoft.com/en-us/library/office/… 好的,请你解释一下你的答案,因为我也被困在这个问题上。对我来说,您的回答是打开数据库....这就是问题所在,您无法打开数据库,因为它会出现该错误!【参考方案10】:

不,它不适用于 Access 2013,仅适用于 2007/2010。在 Access 2013 中无法真正将 MDB 转换为 ACCDB。

【讨论】:

【参考方案11】:

如果您只需要转储数据,您可以使用这个巧妙的脚本 http://youaccess.sourceforge.net 。如果你在 linux / wine 下 你可以试试my procedure

【讨论】:

【参考方案12】:

最好的解决方案是在升级到更新版本的 Access 之前转换现有数据库。微软当然应该在即将安装升级时警告用户这个问题。

【讨论】:

【参考方案13】:

要将数据转换为 mysql 数据库,您可以使用 Bullzip Access to MySQL 程序。它是免费且易于使用的。

http://www.bullzip.com/products/a2m/info.php

【讨论】:

以上是关于Access 2013 - 无法打开使用以前版本的应用程序创建的数据库的主要内容,如果未能解决你的问题,请参考以下文章

通过 Access 2013 VBA 编辑后无法打开 Excel 2013 文件

我可以同时安装两个版本的 Microsoft Access(2007 和 2013),以便我仍然可以打开 .adp 文件吗?

如何使用 ms-access-2016 开发应用程序并使其与以前的版本兼容 (2007)

函数 ExecCmd,以前在 access 2007 中工作,但在 access 2013(64 位)中不再工作

无法从 access 2010 代码创建 access 2013 accde

MS Access 数据库需要更新版本