在Microsoft Access中,我们可以将文件附加到列中(数据类型:附件)。
我们可以使用以下方法检索FileName:
SELECT Persons.SSN, Persons.Attachment.FileName
FROM Persons;
现在我们只需保留文件名(Text)以减小总大小,即接近2GB。我创建了一个列并尝试使用它收集FileName。这是VBA
代码:
strSQL = "UPDATE Persons " & _
"SET AttachedFilename = Persons.Attachment.FileName " & _
"WHERE Attachment.FileName Is NOT NULL"
CurrentDb.Execute strSQL
错误:
Run-time error '3061'
Too few parameters. Expected 1.
如果我将其更改为
...
"SET AttachedFilename = 'aaaaa' " & _
...
然后,处理更新没有问题。
执行此更新的正确方法是什么?
答案 0 :(得分:0)
我认为在"UPDATE Persons"
"UPDATE Persons "
修改强> 刚试过我的Access 2007,这就是你需要运行的东西
UPDATE Persons AS t1
INNER JOIN (
SELECT ssn, Persons.Attachment.FileName as fn
FROM Persons
) AS t2
ON t1.ssn = t2.ssn
SET t1.AttachmentFileName = fn;
相当奇怪,你可以选择 Persons.Attachment.FileName ,但是当你更新时,它不起作用