ここで説明したいことはAccessのDAOで
「添付ファイル数の数を見る方法」
です。
添付ファイル型のフィールドというのはDAOのレコードセットとして取り出すことができるというのがポイントです。
動画の中で紹介しているVBAのコードを示します。
Dim db As DAO.Database
Dim rsImageTable As DAO.Recordset2
Dim rsPictures As DAO.Recordset2
Dim sFileMei As String
Set db = CurrentDb
Set rsImageTable = db.OpenRecordset("写真テーブル")
Do Until rsImageTable.EOF
rsImageTable.Edit
Set rsPictures = rsImageTable.Fields("縮小写真").Value
Dim attachCount As Long
attachCount = 0
Do Until rsPictures.EOF
attachCount = attachCount + 1
rsPictures.MoveNext
Loop
If attachCount = 0 Then
sFileMei = rsImageTable.Fields("縮小写真ファイルパス").Value
rsPictures.AddNew
rsPictures("FileData").LoadFromFile sFileMei
rsPictures.Update
rsImageTable.Update
End If
rsImageTable.MoveNext
Loop
ポイントは
Set rsPictures = rsImageTable.Fields("縮小写真").Value
として、rsPicturesという変数に「縮小写真」フィールドをレコードセットとして読み込んでいることです。
「縮小写真」フィールドは添付ファイル型なのですが、添付ファイル型フィールドはレコードセットとして読み込むことができます。
rsPicturesがレコードセットですから、以下のコードでrsPicturesのレコード数をカウントします。
attachCount = 0
Do Until rsPictures.EOF
attachCount = attachCount + 1
rsPictures.MoveNext
Loop >
レコード数が0の場合は写真を添付し、レコード数が1の場合は既に写真が添付されてますから何も処理をしないというわけです。
If attachCount = 0 Then
で縮小写真を添付するかしないかを決めます。
以下の一行でsFileMeiといういファイル名のファイルを添付ファイルにします。
rsPictures("FileData").LoadFromFile sFileMei
詳しくは動画を参照してください。
|