宏错误 2001 Autoexec 访问宏

Posted

技术标签:

【中文标题】宏错误 2001 Autoexec 访问宏【英文标题】:Macro Error 2001 Autoexec Access Macro 【发布时间】:2017-11-23 14:21:19 【问题描述】:

我在 Access 2016 数据库上设置了 Autoexec 宏,以根据 Environ("USERNAME") 确定要打开的表单。

当我打开数据库时,我得到一个宏错误 2001。如果我单击停止所有宏,我可以继续使用数据库而不会出现问题,直到我更改文件名,然后问题再次发生。

是否有任何选项可以防止发生此错误?

被调用的代码是

LUser = LCase(Environ("USERNAME")) 'Get current username

DoCmd.OpenForm "frmDash", acNormal, , , , acWindowNormal

If IsNull(DLookup("[sysname]", "tblaccmannew", "sysname=" & "'" & LUser & "'")) Then
    DoCmd.OpenForm "frmSearch", acNormal, , , , acWindowNormal
    Forms!frmDash.Visible = False
End If

【问题讨论】:

版本是 Access 2016 【参考方案1】:

您需要“信任”数据库的位置。

.

指定受信任的位置(Access 2013 和 2016)

    在“文件”选项卡上,单击“选项”。

    在“访问选项”对话框的左侧,单击“信任中心”。

    在右侧的 Microsoft Office Access 信任中心下,单击信任 中心设置。

    在“信任中心”对话框的左窗格中,单击“受信任” 地点。

    要添加网络位置,请在右侧窗格中选择允许受信任 我的网络上的位置复选框。

    点击添加新位置。

    在 Microsoft Office 受信任位置对话框中,使用 以下方法:

    在“路径”框中,键入要添加的位置的完整路径。

    单击浏览以浏览到该位置。

    指定新受信任位置的子文件夹也应 受信任,选择此位置的子文件夹也受信任检查 盒子。

    (可选)在“说明”框中,键入受信任的说明 位置。

(Source)

【讨论】:

请注意,您可以在 If 块中使用 CurrentProject.IsTrusted 来检查项目是否受信任,如果不是,则抛出描述性错误。这需要在任何不安全的操作之前都在宏内部,因为如果项目不受信任(例如If Not CurrentProject.IsTrusted Then MessageBox),VBA 将不会运行。这也允许您将所有其他代码放在Else 部分中,以避免触发错误。【参考方案2】:

还要注意;该产品有一个嵌入式功能可以打开初始表单,因此不需要自动执行。查看“选项”“当前数据库”

【讨论】:

以上是关于宏错误 2001 Autoexec 访问宏的主要内容,如果未能解决你的问题,请参考以下文章