损坏的Access .accdb文件:"未识别的数据库格式"

9

我有一个问题。我们共享网络上的一个数据库无法为任何用户打开。它显示“无法识别的数据库格式”。

我以前也遇到过这个问题,但仍然能够打开数据库,压缩和修复,或将所有数据库对象导入新数据库。

问题在于 - 我甚至无法让它达到打开的状态。是否有解决方案,而不需要使用第三方软件来修复数据库?


你使用的是哪些版本? - Fionnuala
我不确定如何做。此外,来自该数据库的任何链接表也无法工作。尝试刷新链接会出现相同的错误。 - Scotch
5
在其他 Office 应用程序的模块中尝试使用 ADODB,例如:myDB="z:\docs\mydb.accdb":使用以下代码创建 ADODB 连接对象并打开连接:Set cn=CreateObject("ADODB.Connection"): cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & myDB - Fionnuala
2
数据损坏文章:http://support.microsoft.com/kb/306204;http://www.granite.ab.ca/access/corruptmdbs.htm - Fionnuala
2
我将大多数数据库设置为在关闭时压缩和修复。绝对不要这样做!这是一个极其糟糕的想法。在压缩和修复之前,一定要先备份。 - Fionnuala
显示剩余5条评论
6个回答

7

打开访问,进入数据库工具选项卡,选择压缩和修复数据库。您可以从那里选择数据库。


在进行压缩和修复之前,请确保您有一份备份副本。 - Fionnuala
开始创建备份,您可以使用计划任务进行夜间备份甚至清理旧的存档。 - twoleggedhorse
它不允许我这样做,即使我打开了Access(而不是相关的Access应用程序),并转到工具>紧缩和修复并选择已损坏的数据库,它仍然显示“无法识别的数据库格式”。 - Scotch
1
你从Access 2007升级到2010或者反过来了吗? - twoleggedhorse

5
我们有一个机器出现了这个问题,而另一个机器没有出现......解决方法是在控制面板中查看Access数据库引擎2007组件的版本。 如果它是12.0.45版本,则需要运行服务包3。 http://www.microsoft.com/en-us/download/confirmation.aspx?id=27835 上述链接将安装12.0.66版本......这将修复问题......我想发布此帖,因为我在任何其他论坛上都没有看到此解决方案。

同样的情况也适用于Access 2010。在加载服务包之前,我每隔几分钟就会破坏一个数据库。该页面提供了32位和64位SP的链接。https://support.microsoft.com/en-us/kb/2687521 - Karl Hoaglund
谢谢,你是我的救星!我在使用node-adodb时遇到了问题,但是没有什么方法可以解决。现在服务包已经修复了一切! :) - Vetterjack
微软的下载链接已经被砍掉了,“很抱歉,此下载不再可用...” 是否有其他地方提供此文件的下载? - LeftyMaus

1

在经历了这个问题的长时间挣扎后,我成功地通过安装2010访问数据库引擎的32位版本来解决了这个问题。由于某种原因,64位版本会生成此错误...


0
有时候这可能取决于你是否使用代码来访问数据库。 如果您在代码中使用的是“DriverJet”而不是“DriverACE”(或旧版本的DAO库),则此类问题很有可能发生。 您只需要将“DriverJet”替换为“DriverACE”,然后进行测试。

0
尝试创建一个新的数据库,并将每个表、查询等导入到这个新的数据库中。通过这种导入,Access会从头开始重新创建所有对象。如果某个对象存在某种损坏,则应该得到解决。
如果你很幸运,只有受损的项目会丢失,如果有的话。

0

嗯,我尝试了一些方法,希望能有所帮助..

他们稍微改变了模式..

请使用以下方法:

1- 在工具箱中将 AccessDataSource 更改为 SQLDataSource。

2- 在下拉菜单中选择您的访问数据库(xxxx.accdb 或 xxxx.mdb)

3- 下一步 -> 下一步 -> 测试查询 -> 完成。

对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接