MS Access中的PDF浏览器控件中的自定义路径

时间:2018-02-21 19:19:51

标签: vba pdf access-vba ms-access-2013

我想在Access中的表单上显示每个单独记录的PDF文件。表单将从组合框的结果中填充(从组合框中选择一个键字段),表单将填充查询中的大量信息。

对于基础表中的每个唯一值,都有一个与之相关的pdf文件。我想使用Web浏览器控件来定义每个唯一键的文件路径。例如,

  

S:\ FOLDERPATH \ XYZ \ keyvalue.pdf"

其中keyvalue.pdf字面上是表单上文本框的内容,该文本框包含该记录的文本字段来源,后跟' .pdf'因此,如果我的密钥为1,则为1.pdf,如果为A-22ds,则文件为A-22ds.pdf

1 个答案:

答案 0 :(得分:1)

假设您有一个名为MyWebbrowserControl的Web浏览器控件表单,并且您希望在其中获取PDF:

Public Sub LoadPDF(MyPdfLocation As String)
    Dim wb As Object
    Dim strHTML As String
    strHTML = "<html><head><title>My PDF</title></head><body>" & _
    "<embed style=""width:100%;height:100%;"" src=""" & Application.HtmlEncode(MyPdfLocation) & """ type=""application/pdf""></embed></body></html>"
    Set wb = MyWebbrowserControl.Object
    With wb
        .Navigate2 "about:blank"
        Do Until .ReadyState = 4 '=READYSTATE_COMPLETE
            'This is an inefficient way to wait, but loading a blank page should only take a couple of milliseconds
            DoEvents
        Loop
        .Document.Open
        .Document.Write strHTML 
        .Document.Close
    End With
End Sub

(我使用非常通用的HTML,它可能会受益于一些调整)。

他们在Form_Current上调用它,例如:

Private Sub Form_Current()
    Dim path As String 
    Dim filename As String 
    path = "S:\MDM\MIRS\SCOPE-MP\" 
    filename = Me.cboPSENumber.Value + "_MP.pdf" 'Final path should be path + filename 
    Me.LoadPDF path & filename
End Sub