3

Access 2007では、PDFのコンテンツが最初のページであっても、フォームに表示する方法はありますか?このPDFは添付ファイルとしてテーブルに保存されています。

4

2 に答える 2

5

免責事項:この回答は、データベースの外部に個別のファイルとして保存されているPDFファイルに対してのみ機能します。それらはネットワーク接続を介して見つけることができますが、データベーステーブルから直接アクセスする方法がわかりません。このサイトでは、添付ファイルの使用方法について詳しく説明していますが、実際に添付ファイルを自動的に表示する方法については説明していません。Accessでは提供されていない機能である可能性があります。

Microsoft Web Browserコントロールを使用して、InternetExplorerで表示できるものなら何でも表示できます。

コントロールを追加すると、フォームのロードイベントまたはオープンイベント中に表示するものに移動できます。

たとえば、コントロールが呼び出されたWebBrowser0場合、次のように機能します。

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

これは、Access内で他のコンテンツを表示するための非常に用途の広い方法です。詳細については、こちらをご覧ください。

于 2012-07-14T14:16:34.170 に答える
0

PDF をプレビューするために私が知っている唯一の 2 つの方法 (Daniel によって提案された WebBrowswer と Adob​​e Active X コントロール) では、ファイル パスをコントロールに渡す必要があります。

添付ファイル フィールドからファイルを抽出し、 などの一時的な場所に保存することをお勧めしますC:\Documents and Settings\username\AppDataEnvironこれは、vbaコマンドを使用して見つけることができます。

ファイルの抽出はSaveToFile、埋め込まれた DAO レコードセットのメソッドを使用して行われます (これは、添付ファイルがメモリに保存される方法です)。

サンプルコード

各レコードには というフィールドが AttachedFile あり、各レコードには添付された PDF が 1 つだけあるとします。 フォームは、PDF を表示するために指定された WebBrowser コントロールを使用していますPreviewBrowser

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

もちろん、特定のレコードに複数の添付ファイルがある場合は、コードをもう少し複雑にする必要がありますが、それはRecAttレコードセットを操作することで実現できます。

于 2012-07-15T19:01:30.087 に答える