我一直在为我的雇主开发Access数据库。最初我的工作PC(Windows 7)安装了Office XP,因此我的第一个数据库是以Access 2002-2003文件格式开发的。后来Office 2013安装在我的机器上,这使我无法正确编辑和编译数据库,因为它只会因为缺少.dll而导致数据库崩溃。启动时出错。为了解决这个问题,我提供了一台旧的Windows XP机器,它仍然安装了办公室XP,当我需要对我的旧产品进行维护或修改时,我可以使用它(.mde文件在新版本的Office中仍然运行良好,一旦修改和编译)。
不幸的是,Windows XP机器现在已经遭遇终端硬件故障。为了尝试恢复我的维护功能,我已经提供了功能更强大的PC(仍然是Windows 7)并且已经使用VirtualBox设置了Windows 7 VM,只安装了Office XP,以便在Office之前尝试模拟我的旧工作PC 2013年安装在它上面。
当我尝试在我的虚拟机上打开2002-2003格式数据库(.mdb)时,我遇到了可怕的缺失.dll'再次出错。数据库将显示错误,然后Access将完全冻结。即使打开数据库并按住 Shift 键,也只允许我打开文件。如果我尝试打开VBA IDE,则会出现错误,然后Access将冻结。
补充说明:我发现它似乎并不总是APSBrowsePanes.dll
。另一个数据库收到相同的错误,但声称缺少的引用是MSOUTL.OLB
在Google上搜索类似问题建议修复Office安装,我试过这个没有效果。使用'压缩和修复数据库'在按下 Shift 键打开数据库后,Access中的选项也没有帮助,它只显示一条消息,说明数据库在修复后已经损坏,并且代码通常是任何时候执行。
如何解决此问题,或者是否有其他选项可用于编辑和编译2002-2003格式的数据库?
答案 0 :(得分:2)
您的问题似乎是数据库损坏和损坏的引用的组合。
您需要将数据库置于可以打开VBA编辑器的状态,打开“引用”对话框并删除可能导致问题的所有内容。
有关参考资料的信息,请参阅http://allenbrowne.com/ser-38.html和http://www.accessmvp.com/djsteele/AccessReferenceErrors.html。
为此,我建议您在Office XP VM上执行以下步骤:
Decompile数据库,按照信函的步骤1到6进行操作。
如果这样做无效,请尝试将所有对象导入新数据库,请参阅http://allenbrowne.com/ser-47.html(在“症状:无法打开表单或报告”下)。
如果您能够删除损坏的引用,则可能必须将某些代码从早期绑定更改为后期绑定,请参阅How to refer to Excel objects in Access VBA?或Preventing Excel VBA compile errors due to users having an older version of MS Office (MS Outlook) installed?