【问题标题】:Access 2010 delaying an Autoexec script until "enable macros" is selectedAccess 2010 延迟 Autoexec 脚本,直到选择“启用宏”
【发布时间】:2014-05-01 11:34:34
【问题描述】:

我在 access 2010 中有一个自动执行脚本,一旦用户加载数据库就会执行。问题是,在该用户启用宏之前,脚本会失败并给出错误,因为它还不允许运行。

有没有办法延迟自动执行,直到选择“启用宏”,然后触发它?

或者有没有一种方法可以在没有自动执行的情况下触发代码,这与“启用宏”选择相关联?

【问题讨论】:

  • Autoexec 直到Enable macros 被点击才会运行,对吗?
  • 它会在打开数据库后立即尝试运行,但由于尚未单击 ​​Enable Macros,因此会返回错误。

标签: ms-access vba ms-access-2010


【解决方案1】:

我找到了How to force user to deal with the Security Warning when starting Access 2007?,这让我找到了这个Microsoft support article

来自微软的文章:

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

要创建 AutoExec 宏和表单,请按以下步骤操作:

  1. 在设计视图中创建一个新表单。
  2. 向表单添加文本框或标签,然后键入要向用户显示的信息。
  3. 保存并关闭表单。
  4. 创建一个宏,然后将该宏命名为 AutoExec。
  5. 显示条件列。
  6. 在条件列中键入以下行:

    CurrentProject.IsTrusted = False

  7. 在“操作”列中,单击 OpenForm。
  8. 在“操作参数”下的“表单名称”框中,单击您在第 1 步中创建的表单。
  9. 保存然后关闭宏。

当数据库打开时,AutoExec 宏启动,然后测试 IsTrusted 条件。如果 Access 2007 不信任该数据库, 宏打开您在“OpenForm”操作中指定的表单 宏。

宏编辑器在 2010 年有所不同,但我能够创建一个检查 CurrentProject.IsTrusted = False 的 Autoexec 宏,然后显示我的表单。您可以在表单上添加一条消息,告诉用户启用宏。

【讨论】:

  • 这对我有用,它实际上比我计划的要好。谢谢!
  • 这也适用于 Access 2013 - 使您的表单成为常规表单,而不是对话框,并带有类似“单击上面的启用内容按钮以允许 Access 运行此数据库中的代码”的标签”。然后将 Else 子句添加到宏中的 If 语句并在那里调用您的常规启动例程 - 然后当用户单击“启用内容”按钮时,将重新打开数据库并运行该例程。
  • 完美解决方案!结合自定义功能区和其他启动程序,我能够生成一个完全锁定的数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多