Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access Access 2007-在表单上显示PDF内容_Ms Access - Fatal编程技术网

Ms access Access 2007-在表单上显示PDF内容

Ms access Access 2007-在表单上显示PDF内容,ms-access,Ms Access,在Access 2007上,是否有一种方法可以在表单上显示PDF的内容,即使它只是第一页?此PDF以附件形式保存在表格中。免责声明:此答案仅适用于作为单独文件存储在数据库之外的PDF文件。它们可以通过网络连接定位,但我不知道如何直接从数据库表访问它们。这样做,但没有显示如何实际自动显示它们。这可能是Access未提供的功能 您可以使用Microsoft Web Browser控件显示Internet Explorer可以显示的任何内容 添加控件后,可以在窗体的加载或打开事件期间导航到要显示的任何

在Access 2007上,是否有一种方法可以在表单上显示PDF的内容,即使它只是第一页?此PDF以附件形式保存在表格中。

免责声明:此答案仅适用于作为单独文件存储在数据库之外的PDF文件。它们可以通过网络连接定位,但我不知道如何直接从数据库表访问它们。这样做,但没有显示如何实际自动显示它们。这可能是Access未提供的功能

您可以使用
Microsoft Web Browser
控件显示Internet Explorer可以显示的任何内容

添加控件后,可以在窗体的加载或打开事件期间导航到要显示的任何内容

例如,如果控件名为
WebBrowser0
,则以下操作将起作用:

Private Sub Form_Load()
    Me.WebBrowser0.Navigate2 "C:\example.pdf" 'Substitute the actual address here.
End Sub

这是在Access中显示其他内容的一种非常通用的方法。您可以找到更多信息

我所知道的预览PDF的仅有两种方法(由Daniel和Adobe Active X控件建议的WebBrowser)需要将文件路径传递给控件

我建议从附件字段提取文件并将其保存到临时位置,如
C:\Documents and Settings\username\AppData
。这可以通过使用vba
Environ
命令找到

通过嵌入式DAO记录集中的
SaveToFile
方法提取文件(附件存储在内存中的方式)

示例代码 假设每个记录都有一个名为
AttachedFile
的字段,并且每个记录只有一个附加的PDF。表单正在使用名为
PreviewBrowser
的WebBrowser控件查看PDF

Private子表单_Current()
关于GoTo ExitSub错误
Dim FormRS作为DAO.Recordset
Set FormRS=Me.Recordset
Dim RecAtt作为DAO.Recordset
如果(Me.AttachedFile.AttachmentCount>0),则
设置RecAtt=FormRS.Fields(“AttachedFile”).Value
RecAtt.OpenRecordset
将路径设置为字符串
FilePath=Environ(“APPDATA”)&“\Preview.pdf”
如果(Dir(FilePath)“”),则终止FilePath
RecAtt.Fields(“FileData”).SaveToFile文件路径
Me.PreviewBrowser.Navigate2文件路径
如果结束
进出口银行:
雷卡特,结束
端接头

当然,如果给定记录有多个附件,则代码需要稍微复杂一些,但这可以通过操纵
RecAtt
记录集来完成。

我添加了一条免责声明和一些相关的附加信息,但仍然无法解决确切的问题。:-(
Private Sub Form_Current()
On Error GoTo ExitSub
    Dim FormRS As DAO.Recordset
    Set FormRS = Me.Recordset

    Dim RecAtt As DAO.Recordset

    If (Me.AttachedFile.AttachmentCount > 0) Then
        Set RecAtt = FormRS.Fields("AttachedFile").Value
        RecAtt.OpenRecordset

        Dim Path As String
        FilePath = Environ("APPDATA") & "\Preview.pdf"

        If (Dir(FilePath) <> "") Then Kill FilePath
        RecAtt.Fields("FileData").SaveToFile FilePath
        Me.PreviewBrowser.Navigate2 FilePath
    End If

ExitSub:
    RecAtt.Close
End Sub