我有一个附件字段的本地表。我尝试用vba删除并手动删除,之前的附件不断回来。在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
@Parfait - 感谢您的纠正:对我来说这是一个新的。 –