Access窗体frm_Rest中btn_PDF自动打开对应PDF文件的技术求助
Access窗体按钮打开指定PDF的正确实现方法
问题根源
你之前的代码存在两个核心错误:
- 路径拼写不一致:目标文件夹是
pdf_CR,但代码里写成了pdf CR,导致文件路径无效 - 未关联动态值:硬编码了固定文件名
CR_Bank.pdf,没有结合txt_Shop中用户录入的实际文件名
正确VBA代码实现
Private Sub btn_PDF_Click() Dim fullFilePath As String Dim userConfirm As Integer ' 弹出确认对话框 userConfirm = MsgBox("是否提交pdf_CR?", vbYesNo + vbQuestion, "确认操作") If userConfirm = vbYes Then ' 拼接完整文件路径:注意文件夹末尾的反斜杠不能少 fullFilePath = "T:\YTD-Statements\July Reports\CR-Statements\pdf_CR\" & Me.txt_Shop.Value ' 先检查文件是否存在,避免报错 If Dir(fullFilePath) <> "" Then FollowHyperlink fullFilePath Else MsgBox "找不到对应文件:" & fullFilePath, vbExclamation, "文件缺失" End If End If End Sub
关键注意点
- 若
txt_Shop只录入文件名前缀(比如只输入CR-Bank而不带.pdf),需要在路径拼接时补充后缀,修改这一行:fullFilePath = "T:\YTD-Statements\July Reports\CR-Statements\pdf_CR\" & Me.txt_Shop.Value & ".pdf" - 必须保留文件夹路径末尾的
\,否则会把文件夹名和文件名连在一起形成无效路径(比如变成pdf_CRCR-Bank.pdf) - 增加文件存在检查,用
Dir()函数判断文件是否存在,比直接调用FollowHyperlink更友好,能给出明确的错误提示
内容的提问来源于stack exchange,提问作者Datamint
相关产品推荐
相关产品推荐

