我继承了Access DB,尝试使用此错误消息打开时出错:
运行时错误'5':
无效的过程或参数
我已将其跟踪到VBE中的以下代码:
Set cbMainMenu = CommandBars.Add(Name:="OIG Main Menubar", _
Position:=msoBarTop, MenuBar:=True, Temporary:=True)
我之前在Googling的一些研究中添加了一个检查,但它似乎不起作用,因为它仍然是错误的(有和没有错误处理更改):
On Error Resume Next
Application.CommandBars(cbMainMenu).Delete
On Error GoTo 0
任何人都有任何想法,或者可以指出我正确的方向来修复此错误?我会继续对它进行一些沉闷。
编辑:
这似乎不是主要的初始错误。我正在努力找到它,如果/当我找到它时会重新发布。
EDIT2:
这实际上是导致错误的原因,环顾四周,看看我是否可以照顾它:
Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=CommandBars("Menu Bar").Controls("Tools").CommandBar.Controls("Database Utilities").CommandBar.Controls("Compact And Repair Database...").Id)
EDIT3:将上述代码更改为:
Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=2071)
解决了这个问题,现在有了comact / repair的选项。 (它甚至可以工作)。由于没有人真正发布具体答案,除了评论之外,我将使用底部的“回答你自己的问题”选项,这样就有了未来的答案。另外,我在这里找到了代码:
答案 0 :(得分:1)
我的猜测是这是一个参考问题。
在Visual Basic IDE中,单击“工具/参考”:
在弹出的对话框中,查找 Microsoft Office x.0对象库:
它旁边有“遗失”这个词吗?如果是这样,那就是你的问题。
取消选中缺少的参考,然后向下滚动并检查随您的Office版本安装的那个。
答案 1 :(得分:1)
在这里回答我自己的问题。
这是“压缩和修复数据库”选项从Access 2003中移动的问题。
VBA代码将其添加为菜单选项,在2003年,这就是代码的样子:
Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=CommandBars("Menu Bar").Controls("Tools").CommandBar.Controls("Database Utilities").CommandBar.Controls("Compact And Repair Database...").Id)
2007年,根据此问题,在此处找到MS Access: how to compact current database in VBA是如何处理的:
Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=2071)