0

在 Microsoft Access 中,我们可以将文件附加到列中(数据类型:附件)。

我们可以使用以下方法检索 FileName:

SELECT Persons.SSN, Persons.Attachment.FileName
FROM Persons;

现在我们只需要保留文件名(文本)来减少总大小,接近 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' " & _
...

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

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

4

1 回答 1

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

于 2013-01-31T00:30:07.793 回答