mas*_*nix 8 ms-access vba warnings
我使用VBA开发了一个Access应用程序.每次我打开Access,我都会得到以下信息:
我必须单击选项 - > 启用内容才能运行我的宏.这个应用程序将由几个不太懂技术的人共享.因此,根据要求,我必须删除它.我已经尝试过签名/打包数据库,但它仍然没有摆脱警告.
Tre*_*fex 11
为此,您必须在"受信任位置"中添加启动Excel的位置.
为此,请执行以下操作:
这必须在每台电脑上完成.
此外,从Excel文件的角度来看,无法做到这一点,因为这将完全取消让用户选择运行VBA代码的安全功能.
另外还有一点注意事项,如果您在Excel文件上签名,您仍然需要收件人信任您作为发布者,这就是您的解决方案可能无法正常工作的原因.
编辑:
在评论中,似乎有一种方法可以以编程方式进行.取自XpertsExchange,
为什么不在不调用Shell的情况下从代码中设置注册表项?使用此处的cRegistry类:
VBA代码:
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
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是,YourTrustedLocationname必须是唯一的......
如果它应该是.ValueType = REG_DWORD或REG_SZ,你必须尝试.我不确定那个.
虽然这个问题已有数年之久,但万一它可能有所帮助,这就是我所做的.它与已经提出的方法不同,它可能为其他人提供服务.就我而言,MsAccess不是由用户直接打开的.相反,MsAccess开始使用另一个自定义应用程序中的自动化.因此,我们让这个自定义应用程序告诉MsAccess启用宏,而不是让用户单击"启用内容".与此类似的东西:
cli = create_object("Access.Application")
cli.AutomationSecurity = 1 # 1 = msoAutomationSecurityLow
cli.visible = true
cli.opencurrentdatabase("c:/Users/jmperez/AppData/Local/Temp/DB_TMP.mdb")
Run Code Online (Sandbox Code Playgroud)
(对于上面的代码感到抱歉,它不是来自'标准'或'流行'编程语言,但它应该不难适应Visual Basic或其他任何东西)
| 归档时间: |
|
| 查看次数: |
28515 次 |
| 最近记录: |