こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access VBA 添付型フィールド

Access VBAで添付型フィールドからファイル名を取りだしたいのですが、どのようにすればいいでしょうか?

Private Sub Sample()

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim SQL As String

  Set DB = CurrentDb

SQL_1 = "SELECT * FROM ボランティア情報 ORDER BY 分野 & 団体名読み;"
Set RS = DB.OpenRecordset(SQL_1, dbOpenDynaset)

With RS
  Do While Not .EOF
  MsgBox (!写真.FileName)  ←ここでエラーが出ます。
.   MoveNext
  Loop
End With
RS.Close
Set RS = Nothing
Set MDB = Nothing
End Sub

投稿日時 - 2013-07-08 13:40:56

QNo.8167605

困ってます

質問者が選んだベストアンサー

やってみて動いたッポイので回答してみますが、裏付け等はしてください。

テーブル「T5」で、フィールド「FF1」が添付ファイルとします。
フィールド「FF1」の Value はレコードセットになっているようで、
フィールドは6つ存在しました。(2007 にて)
その中で Name = "FileName" 部分の Value にファイル名があるようです。


Public Sub test1()
  Dim rs As DAO.Recordset
  Dim v As Variant

  Set rs = CurrentDb.OpenRecordset("T5")
  While (Not rs.EOF)
    With rs("FF1").Value
      While (Not .EOF)
        For Each v In .Fields
          If (v.Name = "FileName") Then
            Debug.Print v.Value
            Exit For
          End If
        Next
        .MoveNext
      Wend
    End With
    rs.MoveNext
  Wend
  rs.Close
  Set rs = Nothing
End Sub

Name = "FileName" はフィールドの3つ目にあるみたいで・・・(裏付けなし)
添付ファイルの個数は1つ or 設定なしであれば、以下でも良いのかも


Public Sub test2()
  Dim rs As DAO.Recordset

  Set rs = CurrentDb.OpenRecordset("T5")
  While (Not rs.EOF)
    With rs("FF1").Value
      If (Not .EOF) Then Debug.Print .Fields(2)
    End With
    rs.MoveNext
  Wend
  rs.Close
  Set rs = Nothing
End Sub

とか

Public Sub test3()
  Dim rs As DAO.Recordset

  Set rs = CurrentDb.OpenRecordset("T5")
  While (Not rs.EOF)
    If (Not rs("FF1").Value.EOF) Then
      Debug.Print rs("FF1").Value("FileName")
    End If
    rs.MoveNext
  Wend
  rs.Close
  Set rs = Nothing
End Sub

投稿日時 - 2013-07-08 18:26:19

お礼

 す、す、すごい!!!
また、素早いご回答、感服しました。
ありがとうございます。頭の中がすっきりしました。

投稿日時 - 2013-07-09 10:55:38

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問