如果 Access 数据库包含Visual Basic for Applications (VBA) 代码,则可以通过将 数据库 保存为 .accde 文件格式来隐藏该代码。 将数据库另存为 .accde 文件可编译所有 VBA 代码模块,删除所有可编辑的源代码,并压缩目标数据库。 VBA 代码保留其功能,但无法查看或编辑代码。 通常,数据库将继续像往常一样工作 ,你仍然可以更新数据和运行报表。
本文内容
Create .accde 文件
使用以下过程创建 .accde 文件。 此过程未修改原始 .accdb 文件。
-
打开数据库,然后单击“ 文件 ”> “另存为”。
-
在 “另存为” 区域的“ 将数据库另存为”下,选择“ 使 ACCDE”, 然后单击“ 另存为”。
-
在“ 另存为 ”对话框中,浏览到要保存 .accde 文件的位置。
-
(可选)在“文件名”框中键入文件的新 名称 。
-
单击“保存”。
如果已存在指定名称的文件,Access 将提示你替换现有文件。 单击“ 是 ”覆盖现有 .accde 文件,或单击“ 否 ”返回到“ 另存为 ”对话框并键入新文件名。
Access 创建 .accde 文件,关闭原始 .accdb 文件,然后打开 .accde 文件。
.accde 文件中更改的功能
将 Access 数据库保存为 .accde 文件不会完全阻止更改数据库设计。 但是,无法在 .accde 文件中执行以下任务:
-
修改或创建窗体、报表或模块。
-
使用“ VBA 引用 ”对话框可添加、删除或更改对对象库或数据库的引用。
-
查看或修改 VBA 代码。
-
导入或导出 Access 窗体、报表或模块。 但是,表、查询和宏可以从 .accdb 数据库导入或导出到 .accdb 数据库。
修改窗体、报表或模块时出现的问题
请务必保留原始 Access 数据库的副本。 如果要修改 .accde 文件中窗体、报表或模块的设计,则必须 (.accdb 文件) 修改原始 Access 数据库,然后将其再次保存为 .accde 文件。 如果以后要修改窗体、报表或模块的设计,将包含表的 Access 数据库保存为 .accde 文件可能会导致协调不同版本数据时出现问题。 因此,将 Access 数据库保存为 .accde 文件最适合 前端/后端应用程序 的前端数据库。
将数据库另存为 .accde 文件的限制
某些限制可能会阻止将 Access 数据库保存为 .accde 文件:
-
必须对 VBA 代码具有密码访问权限。
-
如果 Access 数据库引用另一个 Access 数据库或 加载项 ,则必须将所有 Access 数据库或加载项保存在引用链中作为 .accde 文件。
如果在将数据库保存为 .accde 文件之前使用密码对其进行加密,则 .accde 文件也将进行加密,并且每次打开该数据库时都必须输入密码。 如果不希望对 .accde 文件进行加密,则必须先解密 .accdb 文件,然后再将其另存为 .accde 文件。 将数据库另存为 .accde 文件后,可以再次加密 .accdb 文件。 使用以下过程解密 .accdb 文件:
-
在“文件”选项卡上,单击“信息”,然后单击“解密数据库”。
随即出现“撤消数据库密码”对话框。
-
在“ 取消设置数据库密码 ”对话框的“ 密码 ”框中,键入数据库密码。
-
单击“确定”。
引用如何处理 .accde 文件
如果尝试从 Access 数据库 (.accdb) 或引用另一个 Access 数据库或外接程序的 Access 外接程序 (.accda) 创建 .accde 文件, Access 显示错误消息,并且不允许你完成操作。 若要将引用另一个数据库的数据库另存为 .accde 文件,必须从引用的第一个数据库开始,将引用链中的所有数据库保存为 .accde 文件。 将第一个数据库保存为 .accde 文件后,必须更新下一个数据库中的引用以指向新的 .accde 文件,然后再将其另存为 .accde 文件,依此类比。
例如,假设 Database1.accdb 引用 Database2.accdb,Database2.accdb 引用 Database3.accda。 若要将 Database1.accdb 保存为 .accde 文件,请执行以下操作:
-
将 Database3.accda 另存为 Database3.accde。
-
打开 Database 2.accdb,将其引用更改为指向名为 Database3.accde 的新文件。
-
将 Database2.accdb 另存为 Database2.accde。
-
打开 Database1.accdb,并将其引用更改为指向名为 Database2.accde 的新文件。
-
将 Database1.accdb 另存为 Database1.accde。