【发布时间】:2012-08-10 13:58:54
【问题描述】:
我继承了一个 Access DB,但在尝试打开此错误消息时出错:
运行时错误“5”:
无效的过程或参数
我已经在 VBE 中追踪到以下代码:
Set cbMainMenu = CommandBars.Add(Name:="OIG Main Menubar", _
Position:=msoBarTop, MenuBar:=True, Temporary:=True)
在此之前,我从一些谷歌搜索中添加了一个检查,但它似乎不起作用,因为它仍然出错(有和没有错误处理更改):
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)
修复了这个问题,现在有压缩/修复选项。 (它甚至可以工作)。由于除了 cmets 之外没有人真正发布具体的答案,我将使用底部的“回答你自己的问题”选项,以便为未来提供答案。另外,我在这里找到了代码:
【问题讨论】:
-
按住shift的时候打开数据库,然后编译一下,看看能不能识别行。如果编译没有报错,那么你可以依次打开每个表单,看看是哪一行实际报错
-
尝试将
Application.CommandBars(cbMainMenu).Delete更改为Application.CommandBars("OIG Main Menubar").Delete -
我认为这不再是最初的错误,因为我已经做了一些实验,并且数据库将它变成了我在此之后放入用于调试的一些代码。打算再四处寻找,看看这实际上发生在哪里。感谢您迄今为止的帮助。
-
那是 Access 2003 风格的菜单栏,你在使用 mdb 吗?该行中的代码自行运行时不会对我造成问题。
-
是的,它是一个 .mdb,但我无法进入数据库以将其保存为 2007 格式,当我按住“SHIFT”进入时,我只能选择保存程序我正在用“SAVE-AS”查看
标签: ms-access ms-access-2007 vba