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

如何摆脱VBA安全警告

  •  8
  • masfenix  · 技术社区  · 16 年前

    我用VBA开发了一个Access应用程序。每次打开访问,我都会得到以下信息:

    https://lh5.googleusercontent.com/wgn5B5PllVXGuG6W4_xiFa1rouSpDSn27MC0nzPkgJ5CPN8BKpAn-gDFsVS4GZtepY-c4jtbEupKeV227ogICQlzcg=s512

    我得按一下 选项 启用内容

    5 回复  |  直到 5 年前
        1
  •  11
  •   Lance Roberts    15 年前

    为此,您必须在“可信位置”中添加启动Excel的位置。

    为此,请执行以下操作:

    • 添加位置。

    这将必须在每个pc的基础上完成。

    还有一点需要注意的是,如果您在Excel文件上签名,您仍然需要收件人信任您作为发布者,所以这就是为什么您的解决方案可能不起作用的原因。

    编辑:

    http://www.vbaccelerator.com/home/VB/Code/Libraries/Registry_and_Ini_Files/Complete_Registry_Control/article.asp

     Dim c As New cRegistry
        With c
            .ClassKey = HKEY_CURRENT_USER
            .SectionKey = "Software\Microsoft\Office\12.0\Access\Security\Trusted Locations\YourTrustedLocationName"
            .ValueKey = "Path"
            .ValueType = REG_DWORD
            .Value = "Full path to Trusted Folder"
        End With
    

    唯一要注意的是,您的TrustedLocationName必须是唯一的。。。

    如果应该的话,你得试试。ValueType=REG\u DWORD或REG\u SZ。我不确定那件事。

        2
  •  8
  •   Juan Manuel Perez    10 年前

    在我的例子中,MsAccess不是由用户直接打开的。相反,MsAccess是从另一个自定义应用程序中使用自动化启动的。因此,我们让这个自定义应用程序告诉MsAccess启用宏,而不是让用户单击Enable Content。类似于此:

    cli = create_object("Access.Application")
    cli.AutomationSecurity = 1                # 1 = msoAutomationSecurityLow
    cli.visible = true
    cli.opencurrentdatabase("c:/Users/jmperez/AppData/Local/Temp/DB_TMP.mdb")
    

    (很抱歉上面的代码,它不是来自标准或流行的编程语言,但它应该不难适应Visual Basic或其他任何东西)

        3
  •  3
  •   Fosco    16 年前

    这是每个用户的选择。每个人都需要“信任”你的工作手册。

    在Excel中,单击“菜单”按钮,然后选择“Excel选项”。在该窗口中,选择“信任中心”,然后选择“信任中心设置”。在该窗口中,选择受信任的位置。

        4
  •  2
  •   mcandre    16 年前

    让您的宏由受信任的权威机构签名。

        5
  •  0
  •   Tom    15 年前

    我所做的是用visualstudio2010创建一个安装项目(在setup&下);部署项目)。在此项目中,您可以将MS Access应用程序配置为安装/复制到“C:\Ntapps\MsOffice\Office12\ACCWIZ\”。这是用于受信任数据库的文件夹。然后创建MS Access应用程序的快捷方式,并将其安装到所需位置。

    当一切正常并且安装完成后,MS Access(在默认配置下)现在信任数据库。

    格茨,汤姆