添付ファイル型フィールドからファイルを取得する
VBAを使って添付ファイル型フィールドからファイルを取り出すときは、テーブルやクエリをDAOで開き、添付ファイルオブジェクトを経由し行います。添付ファイルオブジェクトは添付ファイル型フィールドのプロパティ「Value」で作成・取得、取り出しに使うメソッドは「SaveToFile」です。
添付ファイルを取得するプログラムのサンプル
次のプログラムは、VBAを使い添付ファイルを取得するプロシージャのサンプルです。データベースの操作にはDAOを使います。添付ファイルを取得するときは、最初に最初にSQLを実行しレコードセットを作成します。サンプルでは、取得するファイルが保存されているレコード1件を選択するようにしています。

このサンプルでは、フィールド「報告書」が添付ファイル型フィールド、また、With〜End Withが添付ファイルの取得処理を行っている部分です。

Sub Sample(pFindKey As String, pPathname As String)

    Dim objMDB  As DAO.Database
    Dim objRS   As DAO.Recordset
    Dim strSQL  As String

    Set objMDB = Application.CurrentDb

    strSQL = "SELECT  *" _
           & "  FROM  業務日報マスタ" _
           & " WHERE  報告者コード= '" & pFindKey & "'"

    Set objRS = objMDB.OpenRecordset(strSQL, dbOpenDynaset)

    With objRS.Fields("報告書").Value
        .Fields("FileData").SaveToFile pPathname & "\" & .Fields("FileName")
    End With

    objRS.Close
    Set objRS = Nothing
    Set objMDB = Nothing

End Sub

添付ファイルを保存するときは、添付ファイルオブジェクトのフィールド「FileData」でSaveToFileを実行します。このメソッドに指定するのは、保存するファイルのパス情報です。サンプルでは、フォルダのパスは引数(pFilepath)で、ファイル名は添付ファイル名をそのまま使って言います。
Copyright(C) 1999-2006 結城圭介。 All rights reserved