背景
在 Access 表单里嵌入 PDF 预览,是一个看起来简单、做起来头疼的需求。
老办法是用 WebBrowser 控件,依赖 IE 内核 + 本地安装的 Adobe Reader 插件。问题是:
这些问题的根源在于:WebBrowser 控件本身不原生支持 PDF 渲染,全靠外部插件撑着。
而 Microsoft 365 Access引入的 EdgeBrowser 控件,基于 Chromium 内核,原生支持 PDF 渲染。不需要装任何第三方软件,不需要配环境,不需要写 URL 编码。
这篇文章,用最短的篇幅把它讲清楚。
一、EdgeBrowser 控件是什么
EdgeBrowser 本质上是一个嵌入在 Access 窗体里的 WebView2 浏览器实例。它和 Edge 浏览器共享同一个 Chromium 渲染引擎。
因为 Chromium 原生支持 PDF 渲染,所以 EdgeBrowser 也直接支持——这和你在 Edge 浏览器里拖一个 PDF 进去就能看是一个道理。
Edge 浏览器控制功能目前仅适用于使用内部版本 16.0.16327.20214 或更高版本的365版本。
二、实现步骤
第一步:添加 EdgeBrowser 控件
在 Access 表单设计视图中,控件工具箱里找到 EdgeBrowser 控件(图标是地球 + 浏览器窗口)。
如果没看到:
右键工具箱空白处 → 选择控件 勾选 “Microsoft Edge Browser Control” 
第二步:在表单上放置控件
拖出一个合适大小的矩形区域。建议宽度和表单主体一致,高度覆盖主要预览区域。A4 竖版 PDF 大致对应 490×680 的比例。
给控件命名为 ctlEdge,方便代码引用。
第三步:添加文件选择按钮
从工具箱拖一个按钮到表单上,命名为 btnBrowse。
第四步:核心代码
双击按钮,写以下 VBA 代码:
Private Sub btnBrowse_Click()Dim fd As ObjectSet fd = Application.FileDialog(3)With fd.Title = "选择 PDF 文件".Filters.Clear.Filters.Add "PDF 文件", "*.pdf"If .show = -1 Then' 直接改控件来源,搞定Me.txtFilePath = .SelectedItems(1)Me.ctlEdge.ControlSource = "=""https://msaccess/" & .SelectedItems(1) & """"End IfEnd WithEnd Sub
真正干活的就是这一句:
Me.ctlEdge.ControlSource = "=""https://msaccess/" & .SelectedItems(1) & """"拆开看:
https://msaccess/ | file:// 的安全限制 |
.SelectedItems(1) | E:\test\test.pdf |
=""..."" |
最终效果等价于你直接在控件属性面板的「控件来源」里写:
="https://msaccess/E:\test\test.pdf"不需要 file:///,不需要 encodeURI,不需要处理中文路径和空格。https://msaccess/ 协议原生吃 Windows 路径格式。
三、和传统方案对比
| EdgeBrowser | WebView2 Runtime | 自动处理 | 一行代码 |
四、进阶用法
绑定数据表字段,翻记录自动切换 PDF
如果表里有 PDF 路径字段(比如 PDFPath),可以在 Form_Current 事件里动态绑定:
Private Sub Form_Current()If Not IsNull(Me!PDFPath) ThenMe.ctlEdge.ControlSource = "=""https://msaccess/" & Me!PDFPath & """"End IfEnd Sub
用户在表单里翻到下一条记录,PDF 预览自动跟着换。
相对路径
通配符合数据库同目录:
Me.ctlEdge.ControlSource = "=""https://msaccess/" & CurrentProject.Path & "\PDFs\" & Me!FileName & """"五、运行效果
我们来看一下效果
六、总结
EdgeBrowser 预览 PDF 这件事,本质上就是把 Access 从 IE 时代拉到了 Chromium 时代。
以前要折腾一堆环境、插件、编码,现在就是一句 ControlSource 的事。部署成本从「每台电脑折腾一遍」降到了「Win10 装个 Runtime,Win11 零配置」。
核心就三点:
用 EdgeBrowser 控件替代旧的 WebBrowser 控件。 用 https://msaccess/协议前缀替代file:///,自动处理路径编码。通过设置 ControlSource属性实现 PDF 动态加载,一行代码搞定。
如果你的 Access 系统里有合同、报告、图纸、发票等需要预览的 PDF 文件,这种方案是目前最省事的选择。
测试环境:Microsoft 365 Access(版本 2209+),Windows 10/11。
社区版 Access 开发框架已开放下载。 关注公众号或添加微信 Access开发 即可获取,欢迎下载测试。
如果你的团队正在用 Access,或者计划用 Access 搭建业务系统,我们可以提供从培训到落地的全流程支持:
📚 技术培训
Access VBA 从入门到精通(线上/线下均可)
Access + SQL Server 企业级开发实战
Access 系统性能优化与架构设计
AI + Access 融合开发专题培训
💼 定制开发
企业 ERP / CRM / 进销存 / WMS / MES 等系统开发
旧 Access 系统升级、性能优化与架构重构
AI 能力集成到现有 Access 业务系统
🔧 技术支持
代码审查与重构建议
疑难问题远程诊断
一对一技术辅导
无论是想让团队快速上手 Access 开发,还是需要把现有系统接上 AI,都可以直接联系我们聊聊方案。
联系方式:
公众号后台留言
邮箱:will.miao@edonsoft.com
微信:Access开发
公司网站:www.edonsoft.com

夜雨聆风