我最终将数据库损坏到每次尝试打开它的位置,都会收到错误3022,“您请求对该表进行的更改未成功,因为它们会在索引中创建重复的值。”
似乎无法恢复该文件,我之前的备份是一个月前。我能够提取除模块以外的所有内容,这是我最需要恢复的内容。我发现没有一种标准方法可用,因为它们需要打开数据库的能力(例如,尝试将其设置为VBA引用仍会产生相同的错误。)
是否有任何方法可以在不打开文件的情况下从文件中获取模块或代码?
编辑:终于能够访问该文件。使用DBEngine.CompactDatabase,它可以进行压缩和修复。问题归结为“ MSysAccessStorage”表已损坏,并说“ Id不是该表中的索引”。我知道可以访问除模块之外的所有内容,除非没有MSysAccessStorage工作,否则无法打开这些模块。
我将继续对此进行检查,但不确定如何修复系统表。任何想法都会有所帮助。