添付ファイルのフィールドを持つローカルテーブルがあります。 vbaで手動で削除しようとしましたが、以前の添付ファイルは元に戻ります。私はレコードセットとSQLでそれを試した。 SQL添付ファイルのデータを削除する
Let strSQL = "DELETE tblSpecsPics.PicID,tblSpecsPics.SpecID,tblSpecsPics.SpecDetailID,tblSpecsPics.PicNum,tblSpecsPics.Pic.FileData,tblSpecsPics.Pic.FileName,tblSpecsPics.Pic.FileType,tblSpecsPics.ImageDesc FROM tblSpecsPics;"
db.Execute strSQL, dbSeeChanges
レコード
Set rst = db.OpenRecordset("SELECT * FROM tblSpecsPics WHERE Not (tblSpecsPics.Pic.FileData) Is Null;", dbOpenDynaset, dbSeeChanges)
If Not rst.BOF And Not rst.EOF Then
rst.MoveFirst
Do Until rst.EOF
rst.Edit
Set rsv = rst.Fields(4).Value
rsv.Delete
rst.Update
rst.MoveNext
Loop
エンド
私は新しいレコードを追加するとした場合、古い添付ファイルは必ず再表示されます。
レコードのフィールドを「削除」しないでください。値をnullに設定します。削除はフルレコードのみに適用されます。 –
実際に@TimWilliams、MS Accessテーブルの添付ファイルタイプは、実際にはメインテーブルへのポインタを持つテーブルを結合します。すべてのメタデータを削除するには、基になるリンクレコードを削除する必要があります。 – Parfait
@パルフェット - 訂正してくれてありがとうございます。それは私にとって新しいものです。 –