对用户隐藏 VBA 代码

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

如果 Access 数据库包含Visual Basic for Applications (VBA) 代码,则可以通过将数据库保存为 .accde 文件格式来隐藏该代码。 将数据库另存为 .accde 文件会编译所有 VBA 代码模块,删除所有可编辑的源代码,并压缩目标数据库。 VBA 代码保留其功能,但无法查看或编辑代码。 通常,数据库将继续照常运行 — 你仍然可以更新数据和运行报表。

本文内容

创建 .accde 文件

使用以下过程创建一个 .accde 文件。 此过程使原始 .accdb 文件保持不变。

  1. 打开数据库,然后单击“ 文件>”“另存为”。
  2. “另存为 ”区域的 “数据库另存为”下,选择 “建立 ACCDE ”,然后单击“ 另存为”
  3. 在“ 另存为 ”对话框中,浏览到要保存 .accde 文件的位置。
  4. 可以选择在“ 文件名 ”框中为文件键入新名称。
  5. 单击“保存”。
    如果已存在采用指定名称的文件,Access 将提示您替换现有文件。 单击“ ”覆盖现有的 .accde 文件,或单击 “否” 返回到 “另存为” 对话框并键入新文件名。

Access 将创建 .accde 文件,关闭原始 .accdb 文件,然后打开 .accde 文件。

在 .accde 文件中更改的功能

将 Access 数据库另存为 .accde 文件并不能完全阻止对数据库设计的更改。 但是,不能在 .accde 文件中执行以下任务:

  • 修改或创建窗体、报表或模块。
  • 使用 VBA 引用对话框 添加、删除或更改对对象库或数据库的引用。
  • 查看或修改 VBA 代码。
  • 导入或导出 Access 窗体、报表或模块。 但是,表、查询和宏可以从 .accdb 数据库导入或导出到 .accdb 数据库。

修改表单、报表或模块的问题

请务必保留原始 Access 数据库的副本。 如果要修改 .accde 文件中的窗体、报表或模块的设计,必须修改 Access 数据库 (.accdb 文件) ,然后将其重新保存为 .accde 文件。 如果以后想要修改窗体、报表或模块的设计,将包含表的 Access 数据库另存为 .accde 文件,可能会导致协调不同版本的数据时出现问题。 因此,将 Access 数据库另存为 .accde 文件最适合用于前端/后端应用程序的前端数据库。

将数据库另存为 .accde 文件的限制

某些限制可能会阻止您将 Access 数据库另存为 .accde 文件:

  • 必须拥有对 VBA 代码的密码访问权限。
  • 如果 Access 数据库引用另一个 Access 数据库或加载项,则必须将引用链中的所有 Access 数据库或加载项保存为 .accde 文件。

如果在将数据库另存为 .accde 文件之前先使用密码对数据库进行加密,.accde 文件也将加密,每次打开它时都必须输入密码。 如果不希望对 .accde 文件进行加密,则必须先解密 .accdb 文件,然后再将其另存为 .accde 文件。 将数据库另存为 .accde 文件后,可以再次加密 .accdb 文件。 使用以下过程解密 .accdb 文件:

  1. 在“文件”选项卡上,单击“信息”,然后单击“解密数据库”。 
    随即出现“撤消数据库密码”对话框。
  2. “取消设置数据库密码 ”对话框的“ 密码 ”框中,键入数据库密码。
  3. 单击“确定”。

引用如何处理 .accde 文件

如果尝试从 Access 数据库 (.accdb) 或引用另一个 Access 数据库或加载项的 Access 加载项 (.accda) 创建 .accde 文件,则 Access 将显示一条错误消息,并且不允许你完成该操作。 要将引用另一个数据库的数据库另存为 .accde 文件,必须将引用链中的所有数据库另存为 .accde 文件,从引用的第一个数据库开始。 将第一个数据库另存为 .accde 文件后,必须先更新下一个数据库中的引用以指向新的 .accde 文件,然后再将其另存为 .accde 文件,类推。

例如,假设 Database1.accdb 引用 Database2.accdb,并且 Database2.accdb 引用 Database3.accda。 要将 Database1.accdb 另存为 .accde 文件,请执行下列操作:

  1. 将 Database3.accda 另存为 Database3.accde。
  2. 打开 Database 2.accdb,并将其引用更改为指向名为 Database3.accde 的新文件。
  3. 将 Database2.accdb 另存为 Database2.accde。
  4. 打开 Database1.accdb,并将其引用更改为指向名为 Database2.accde 的新文件。
  5. 将 Database1.accdb 另存为 Database1.accde。

返回页首