我有一个腐败的数据库。如果我在MS Access中打开它,MS Access会提供修复它,并且它会成功。
如何使用代码执行此操作?在未安装MS Access的计算机上。
我从尝试中知道JRO.JetEngine.CompactDatabase不起作用。
换句话说,我想做Access或JETCOMP.exe正在做的事情,而不是JRO.JetEngine.CompactDatabase正在做的事情。
答案 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。