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

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

Sub Sample(pFindKey As String, pFilename 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)

    objRS.Edit

    With objRS.Fields("報告書").Value

        .AddNew
         On Error Resume Next
        .Fields("FileData").LoadFromFile pFilename
        .Update
         If Err.Number <> 0 Then
           .CancelUpdate
         End If
         On Error GoTo 0

    End With

    objRS.Update

    objRS.Close
    Set objRS = Nothing
    Set objMDB = Nothing

End Sub

最初に、メソッド「AddNew」を実行し添付ファイルの追加を宣言、次に添付ファイルオブジェクトのフィールド「FileData」でLoadFromFileを実行し、オブジェクト内に添付ファイルを保存する準備を行います。なお、LoadFromFileに指定するのは、追加するファイルのパス情報です。

そして、最後にメソッド「Update」を実行すれば添付ファイルが保存されます。ただし、何らかの事情で保存できなかった(実行時エラーが発生した)場合は、メソッド「CancelUpdate」を実行し添付ファイルの保存を取り消しています。
Copyright(C) 1999-2006 結城圭介。 All rights reserved