Access 365非.accdb/.accde后缀文件VBA代码签名失败求助
Access 365 VBA代码签名后缀限制问题的解决思路
临时转标准后缀+另存为目标格式
- 把非
.accdb/.accde后缀的文件先重命名为.accdb,完成VBA代码签名。 - 签名确认生效后,不要手动改后缀,用Access自带的「另存为」功能导出成你需要的目标后缀(比如
.accdr)。实测用「另存为」导出的文件会保留签名,手动重命名肯定丢证书。
批量处理脚本(多文件场景适用)
如果要处理一堆非标准后缀的Access文件,可以写个VBA脚本自动跑流程:
- 遍历目标文件夹,把非
.accdb的文件临时改成.accdb后缀。 - 自动打开Access文件,调用
SignVBProject方法完成签名(得提前配置好数字证书)。 - 签名完用Access的
SaveAs方法导出回原后缀格式。 - 删除临时的
.accdb文件。
核心代码片段:
Dim appAccess As Object Set appAccess = CreateObject("Access.Application") ' 临时重命名文件 Name "C:\YourFile.accdr" As "C:\TempFile.accdb" ' 打开文件并签名 appAccess.OpenCurrentDatabase "C:\TempFile.accdb" appAccess.VBE.ActiveVBProject.Signature.SetSignature ' 另存为原格式(以运行时格式为例) appAccess.CurrentProject.SaveAs "C:\YourFile.accdr", acSaveAsAccessRuntime appAccess.CloseCurrentDatabase Set appAccess = Nothing ' 删除临时文件 Kill "C:\TempFile.accdb"
哈希绑定信任(固定文件场景)
如果必须保留非标准后缀,且前两种方法不适用,试试把数字证书和文件的哈希值绑定——通过组策略或者第三方工具强制信任这个文件的哈希。但注意,只要文件内容一修改,就得重新绑定哈希,只适合内容固定的文件。
内容的提问来源于stack exchange,提问作者Gerlinde
相关产品推荐
相关产品推荐

