我使用python和tkinter创建了一个GUI,允许用户选择要在MS Access查询中使用的搜索条件。按下按钮后,脚本将打开Access并运行一个宏,该宏又启动一个读取用户输入,执行查询和打印报告的功能。用于执行此操作的代码是:
objAccess = win32com.client.Dispatch("Access.application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase(filepath)
objAccess.DoCmd.RunMacro("Macro1")
objAccess.Quit()
我的问题是我想将数据库和python脚本放在网络驱动器上,以便我的同事可以使用该脚本生成报告,而无需在Access中打开数据库(并且不可避免地会进行无意的更改)。每当脚本第一次从其他人的PC运行时,它将无法完成,因为宏尚未从该PC中获取。如果他们打开数据库并启用宏并使文档“#34; trusted"”,脚本将正常工作。
我想知道的是,是否有任何方法可以为该特定Access数据库的所有用户永久启用宏,或者我是否可以修改我的脚本以检查数据库是否启用了宏,并启用了宏他们被禁用了。
我知道禁用宏是一种安全措施,所以我想我可能只需要让我的用户在运行脚本之前手动启用宏。不是很优雅。
答案 0 :(得分:1)
永久启用宏有两种方法。
您可以在文件>中的信任中心设置中设置/编辑它们。选项>信托中心>信任中心设置。 但是你必须至少为每个用户/访问安装设置一次。
这是MS的官方链接怎么做: https://technet.microsoft.com/en-us/library/dn166703.aspx
请注意,Microsoft建议不要将网络路由设置为受信任位置。此外,您应该考虑@Krish KMs评论建议,为用户创建本地前端。这还需要受信任的位置或发布者,但不需要在网络驱动器上,而是在本地驱动器上。