假设您想要检查不受信任的 Access 数据库的内容。
似乎应该有一种方法可以在禁用宏和 VBA 的情况下在 Access 中打开它。
在网上搜索后,我发现几个不太正确的选项:
- 按住 Shift 键可抑制任何 Autoexec 宏或启动表单。这没什么用,因为(难以置信)它可以绕过。
- 将宏安全级别设置为“中”。它提供的唯一选项是“取消”和“打开”。没有“以禁用脚本的方式打开”。
- “沙盒模式”即“阻止不安全的表达式”。这没什么用,大多数脚本仍可运行。
- 知识库文章如何在部署 Office 2003 或 Office XP 时关闭 Visual Basic for Applications给出了 5 个选项,它们只是两种方法的变体:
- 卸载(或不安装)VBA。太过分了。我还是想检查我可能想或可能不想运行的代码。
- 设置“VBAOff”注册表值,等效于通过 Policy 或
regedit
。这适用于除 Access 之外的所有 Office 应用程序!
还有人有其他想法吗?我正在使用 Access 2003。
答案1
您可以将表从一个 Access 实例链接到另一个 Access 实例。通过这样做,您可以控制查看环境,从而确保只有您想要运行的表单和宏才会运行。
例如,创建一个新的空数据库。将其命名为 DB1.mdb。然后选择“表”|“新建”|“链接...”,然后指向要安全查看的数据库和表。对要访问的每个表重复此操作。创建表链接后,您可以在这些表上创建查询、表单和报告,而不会出现任何不必要的宏运行的风险。
更强大,但同时也更需要您具备技术能力,您还可以将查询、表单、报告、Visual Basic 和宏从 DB1.mdb 拖放到 DB2.mdb。在运行它们之前,您可以检查它们以确保它们会做什么或不会做什么。例如,您可以打开它们并删除任何宏,就像您出于某种原因对那里的内容非常谨慎一样。-- 干杯