"操作失败错误号: 2950" 运行在 Access 数据库中调用 VBA 函数的宏时出错

备注

Office 365 ProPlus 正在重命名为适用于企业的 Microsoft 365 应用。 有关此更改的详细信息, 请阅读此博客文章

原始 KB 数:   931407

备注

如果你是小型企业客户,请在对 小型企业 网站的支持中查找其他故障排除和学习资源。

症状

当您在 Microsoft Office Access 2007 或更高版本的数据库中运行调用 Microsoft Visual Basic for Applications (VBA) 函数的宏时,您会收到以下错误消息:

操作失败
宏名称: MacroName
条件: 条件
宏名称: RunCode
参数: 参数
错误号:2950

原因

如果 Access 不信任数据库,则会出现此问题。 默认情况下,Access 在禁用模式下打开不受信任的数据库的最新版本。 在禁用模式下,将禁用可执行内容。

解决方案

如果您信任数据库的作者,并且您想要启用数据库,请使用下列方法之一。

方法1:为当前会话启用数据库

使用此方法时,Access 将启用数据库,直到您关闭数据库。 若要为当前会话启用数据库,请按照以下步骤操作:

  1. 在消息栏上,单击 " 选项"。
  2. 在 " Microsoft Office 安全选项 " 对话框中,单击 " 启用此内容",然后单击 "确定"

备注

您可能需要在每次打开数据库时重复这些步骤,具体取决于您的访问版本。

方法2:将数据库移动到受信任位置

为此,请按照下列步骤操作:

  1. 确定可将数据库移动到的受信任位置。 为此,请按照下列步骤操作:

    1. 单击“文件”,然后单击“选项”

    2. 单击 "信任中心",然后单击 " Microsoft Office Access 信任中心" 下的 "信任中心设置"。

    3. 单击 " 受信任位置",然后使用以下过程之一:

      • 记下列出的受信任位置的路径。
      • 添加新的受信任位置。 若要执行此操作,请单击 " 添加新位置",然后指定要添加的位置的路径。
  2. 将 Access 数据库移动到您指定的受信任位置。

更多信息

您可以使用 AutoExec 宏在打开数据库时测试数据库是否受信任。 此外,如果数据库不受信任,则该宏可以打开向用户显示自定义消息的窗体。 此消息让用户知道,必须启用或信任数据库,代码才能成功运行。

若要创建 AutoExec 宏和窗体,请按照下列步骤操作:

  1. 在设计视图中创建一个新窗体。

  2. 将文本框或标签添加到窗体中,然后键入要向用户显示的信息。

  3. 保存并关闭该窗体。

  4. 创建一个宏,然后将该宏命名为宏 AutoExec

  5. 显示 " 条件 " 列。

  6. 在 " 条件 " 列中键入以下行:

    CurrentProject.IsTrusted = False

  7. 在 " 操作 " 列中,单击 " OpenForm"。

  8. 在 "操作参数" 下的 "窗体名称" 框中,单击您在步骤1中创建的窗体。

  9. 保存并关闭该宏。

当数据库打开时, AutoExec 宏将启动,然后测试 IsTrusted 条件。 如果 Access 不信任数据库,则宏将打开在宏的操作中指定的窗体 OpenForm