宏错误 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 访问宏的主要内容,如果未能解决你的问题,请参考以下文章