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