我正在尝试获取执行此操作的Access SQL查询(下面的半伪代码)
UPDATE SignIn SET SignIn.Complete=True, CompletedBy=(Select [FirstName] & " " & [LastName] AS EmployeeName From UserList where POid = Forms!HiddenUserCheck!txtPOid), CompletedDateTime=Now()
因此,在运行查询之后,数据库中的数据看起来像
Complete EmployeeName CompletedDateTime
True John Smith 3/23/2017 8:34:10 AM
更新查询因语法不起作用而无法确定如何解决。
确切的错误消息是
子查询中的备注,OLE或超链接对象无效' [FirstName]& " " &安培; [姓氏]'
答案 0 :(得分:0)
由于Double Exclamation标记,查询可能会失败。而不是
Forms!HiddenUserCheck!txtPOid
尝试
Forms!HiddenUserCheck.txtPOid
您的WHERE Statment
末尾还有一个额外的)
答案 1 :(得分:0)
好的,那么你的问题可能是子查询可能会返回多条记录:
UPDATE
SignIn
SET
SignIn.Complete=True,
CompletedBy =
(Select First([FirstName] & " " & [LastName]) AS EmployeeName
From UserList
Where POid = Forms!HiddenUserCheck!txtPOid),
CompletedDateTime = Now()
如果您的名称字段是Memo / LongText字段,则可能是错误的来源。如果是这样,请尝试:
UPDATE
SignIn
SET
SignIn.Complete=True,
CompletedBy =
(Select First(Left([FirstName], 255) & " " & Left([LastName], 255)) AS EmployeeName
From UserList
Where POid = Forms!HiddenUserCheck!txtPOid),
CompletedDateTime = Now()
编辑。
您可以尝试使用 DLookup 作为子查询:
UPDATE
SignIn
SET
SignIn.Complete=True,
CompletedBy =
DLookup("[FirstName] & " " & [LastName]", "UserList", "POid = " & Forms!HiddenUserCheck!txtPOid & ""),
CompletedDateTime = Now()