如何在Access数据库中具有附加文件名

时间:2013-01-30 20:00:27

标签: sql vba

在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' " & _
...

然后,处理更新没有问题。

执行此更新的正确方法是什么?

1 个答案:

答案 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 ,但是当你更新时,它不起作用