3

我继承了一个 Access 数据库,并且在尝试打开此错误消息时出错:

运行时错误“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

任何人有任何想法,或者可以指出我正确的方向来解决这个错误?我将继续努力工作一段时间。

编辑:

这似乎不是主要的初始错误。我现在正在努力寻找它,如果/当我找到它时会重新发布。

编辑2:

这实际上是导致错误的原因,环顾四周,看看我是否能解决它:

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)

修复了这个问题,现在有压缩/修复选项。(它甚至可以工作)。由于除了评论之外没有人真正发布具体答案,因此我将使用底部的“回答你自己的问题”选项,以便为未来提供答案。另外,我在这里找到了代码:

MS Access:如何在 VBA 中压缩当前数据库

4

2 回答 2

1

我的猜测是这是一个参考问题。

在 Visual Basic IDE 中,单击工具/参考: 在此处输入图像描述

在弹出的对话框中,查找Microsoft Office x.0 Object Library:

在此处输入图像描述

旁边有“缺”字吗?如果是这样,那是你的问题。

取消选中缺少的参考并向下滚动并检查随您的 Office 版本安装的参考。

于 2012-08-10T14:34:04.657 回答
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:如何在 VBA 中压缩当前数据库是需要如何处理的:

Set cbcToolsDBCompact = cbpToolsMenu.Controls.Add(Id:=2071)
于 2012-08-10T15:16:54.767 回答