如何以编程方式修复(不仅仅是紧凑)Access .mdb文件?

时间:2008-09-26 20:35:45

标签: ms-access

我有一个腐败的数据库。如果我在MS Access中打开它,MS Access会提供修复它,并且它会成功。

如何使用代码执行此操作?在未安装MS Access的计算机上。

我从尝试中知道JRO.JetEngine.CompactDatabase不起作用。

换句话说,我想做Access或JETCOMP.exe正在做的事情,而不是JRO.JetEngine.CompactDatabase正在做的事情。

4 个答案:

答案 0 :(得分:2)

您需要转到http://support.microsoft.com并搜索JetComp.exe实用程序,该实用程序将尝试在不打开文件的情况下修复和压缩MDB。之所以上述建议都不是因为他们必须打开MDB来完成他们的工作,而JetComp不会打开文件,而是在结构上对其进行操作。

如果无法恢复您的文件(确实发生了这种情况),那么您将不得不转到数据恢复服务。我推荐PKSolutions.com的Peter Miller。

答案 1 :(得分:1)

用于打开.mdb文件的命令行开关:

/compact

修复并压缩数据库文件。

如果在/ compact开关后省略目标文件名,则会将文件压缩为原始名称和文件夹。要压缩为其他名称,请指定目标文件。

答案 2 :(得分:1)

您是否尝试过DBEngine.RepairDatabase [my.mdb]? (即使你引用了早期版本,它似乎也不再起作用)

但是,如果经常发生以至于你需要对其进行编码,那么你可能会遇到一个更大的问题,你应该首先解决它。

如果您愿意使用单独的实用程序,Jetcomp.exe实用程序(http://support.microsoft.com/kb/295334)怎么样。它应该“能够恢复Microsoft Access压缩实用程序和CompactDatabase方法无法恢复的某些数据库”。在这种情况下,您需要做的就是执行外部应用程序。

例如,

Call Shell("Jetcomp.exe <arguments>")

答案 3 :(得分:0)

我不是MS Access专家,但好像this utility包含了压缩和修复损坏的数据库文件所需的DLL。