代码之家  ›  专栏  ›  技术社区  ›  Johan

如何在启动Access2007时强制用户处理安全警告?

  •  3
  • Johan  · 技术社区  · 16 年前

    当用户启动具有宏和VBA的Access2007数据库时,将显示安全警告。我希望用户处理此警告,因此如果未启用内容,则用户将无法使用数据库。

    现在我使用一个名为 AutoExec (打开一个像菜单一样工作的窗体),在用户处理安全警告之前运行该宏。但是我想检查内容是否被启用,如果没有,我将显示一个通知用户应该启用内容的表单。

    所以我真正想要的是如何做到这一点:

    1. 如果vba和宏 未启用 ->显示窗体“信息”
    2. 如果vba和宏 启用 ->显示“开始菜单”窗体
    6 回复  |  直到 11 年前
        1
  •  6
  •   Johan    16 年前

    好的,过一会儿我就有了解决办法。谢谢你给我正确的答案。

    This article 微软的帮助很大。

    在autoexec宏中,我有两行:

    第一行: Conditions: [CurrentProject].[IsTrusted]=False 然后我选择要打开的witch表单,在这种情况下,它是“关于安全警告表单的信息”

    第二行: Conditions: [CurrentProject].[IsTrusted]=True 现在打开“开始菜单窗体”

    就这样!

        2
  •  1
  •   Rick Mogstad    16 年前

    如果内容被禁用,则无法检查,因为代码无法运行….

        3
  •  1
  •   Fionnuala    16 年前

    您可能需要考虑启动表单(“信息”)。这将不显示宏。

    此外,还可以运行一些启动代码或宏,关闭信息窗体并打开主窗体(“开始菜单”),如果不允许宏,则不会运行。不过,我想你可能会得到一个难看的警告。

    编辑

    将计时器间隔设置为100,并在信息窗体中添加一点代码:

    Private Sub Form_Timer()
       DoCmd.Close acForm, "Information"
       DoCmd.OpenForm "start menu"    
    End Sub
    
        4
  •  1
  •   Scotch    13 年前

    只是为了添加我的解决方案——我只是在处理这个问题。

    默认情况下,在数据库选项中,将其设置为以“notenabled”形式打开 在这个“未启用”的表单上,有一些文本、图片,或者你拥有什么让用户知道他/她需要“启用内容”。

    在负载下 事件对于此表单,只需放置一些VBA来打开您希望用户显示的实际表单,并关闭“notenabled”表单。

    这样,如果用户打开数据库而不使其可信,启用内容,那么他们会被卡在通知他们如何操作的表单上。一旦被信任,表单的加载事件将触发并重定向用户到您想要的任何表单,启用内容。

    如果用户打开了数据库,并且已经信任了该文件,那么他们看不到表单告诉他们要信任该文件。

        5
  •  0
  •   David-W-Fenton    16 年前

    可以通过在autoexec宏中将istrusted标志设置为true来避免这种情况。见 Transitioning Your Existing Access Applications to Access 2007 --寻找不受信任的人,让你了解如何处理它的核心解释。

        6
  •  -1
  •   Jeffrey Longwe    13 年前

    我不知道为什么人们给出的建议还没有经过测试。我的解决方案很简单:

    if:[currentproject]。[istrusted]=false runmenucommand:关闭数据库

    否则

    if:[CurrentProject]。[IsTrusted]=真 run code:(首先运行您想要运行的代码或宏)

    如果出现安全警告,这基本上会关闭数据库。如果不是的话,打开的很好。作为管理员的用户需要降低任何想要访问数据库的人计算机上的宏安全级别。与其他宏不同的是,这个宏实际上会运行,因为它符合访问的需要。

    不客气!

    推荐文章