私の元同僚は、多数のレコードセットを持つアクセスデータベースを構築し、それぞれに1〜5枚の写真が添付されています。データベースのサイズは現在かなり大きく(約2 GB)、実際には遅いです。悪いニュースは、より多くのデータが毎日入ってくるということです:(MS Access:特定の名前の添付ファイル(イメージ)をフォルダにエクスポートする方法は?
私はそれを修正する必要があります。私のアイデアは、データベースの添付ファイルに画像を含める代わりに、パスと画像の名前を保存するだけです
今、私がしなければならないことは、既存のすべての画像(約3000枚の写真)を次の場所から書き出す方法を見つけることです。名前をIMG _ ####に似ているため、データベースの名前を変更した後にフォルダに移動します(エクスポートの後に手動で名前を変更して名前を変更する必要はありません)。 If私は成功しました.DBのサイズが大幅に縮小され、パフォーマンスが向上しました。それは夢です! どうすればいいですか?
私はインターネット上で何かを見つけました。しかし、最初のレコードセットの添付ファイルだけをエクスポートします。これを私の必要性にどのように変えることができますか?
Dim strPath As String
Dim rs As DAO.Recordset
Dim rsPictures As Variant
strPath = Application.CurrentProject.Path
'????How to loop through all record set???
' Instantiate the parent recordset.
Set rs = CurrentDb.OpenRecordset("Assets")
' Instantiate the child recordset.
Set rsPictures = rs.Fields("Attachments").Value
' Loop through the attachments.
While Not rsPictures.EOF
'????How to rename the picture???
' Save current attachment to disk in the "My Documents" folder.
rsPictures.Fields("FileData").SaveToFile strPath & "\Attachment"
rsPictures.MoveNext
Wend
ありがとうございます。私は本当にあなたの助けに感謝します!
ファイルシステムv。DBストレージは、神聖な戦争トピックのビットです。 SQL Serverのようなより堅牢なバックエンドへの移行だけを検討しましたか? – Comintern
Um、主な 'rs'の' rsPictures'のためにすでに持っているのと同じ種類の 'While Not rs.EOF'ループを実行してください。 – Andre