dポイントプレゼントキャンペーン実施中!

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

A 回答 (1件)

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



テーブル「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
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/07/09 10:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A