Update语句中的SQL语法错误-组合多个字段

Update语句中的SQL语法错误-组合多个字段,sql,vba,ms-access,Sql,Vba,Ms Access,好吧,我这辈子都搞不懂。我只是从来没有组合过多个字段,就语法而言,这让我很反感。我知道我应该单引号引|的,但是我是否单引号引字符串字段?我在这搞什么鬼 CurrentDb.Execute "UPDATE tblFinal SET (tblFinal.[Short Item Description] = & tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' & trim(tblF

好吧,我这辈子都搞不懂。我只是从来没有组合过多个字段,就语法而言,这让我很反感。我知道我应该单引号引|的,但是我是否单引号引字符串字段?我在这搞什么鬼

CurrentDb.Execute "UPDATE tblFinal SET (tblFinal.[Short Item Description] =
 & tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' 
 & trim(tblFinal.[License Number]) & '|' " & _
 "tblFinal.[State] & '|' & tblFinal.[City of Store])"
我得到的错误只是“Update语句中的语法错误”

CurrentDb.Execute "UPDATE tblFinal SET (tblFinal.[Short Item Description] =
 & tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' 
 & trim(tblFinal.[License Number]) & '|' " & _
 "tblFinal.[State] & '|' & tblFinal.[City of Store])"

我对Access了解不多,但我认为您只是在混合中使用了一些错误的双引号:

CurrentDb.Execute "UPDATE tblFinal SET (tblFinal.[Short Item Description] =
 & tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' 
 & trim(tblFinal.[License Number]) & '|' " & _
 "tblFinal.[State] & '|' & tblFinal.[City of Store])"
CurrentDb.Execute "UPDATE tblFinal SET tblFinal.[Short Item Description] = tblFinal.[2 Digit Year] & '|'& tblFinal.[License Type] & '|'& trim(tblFinal.[License Number]) & '|'& tblFinal.[State] & '|'& tblFinal.[City of Store]"

您只需要在要连接的文本周围加上单引号,所有字段都可以用
&

连接,注意行的连续字符和引号:

CurrentDb.Execute "UPDATE tblFinal SET (tblFinal.[Short Item Description] =
 & tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' 
 & trim(tblFinal.[License Number]) & '|' " & _
 "tblFinal.[State] & '|' & tblFinal.[City of Store])"
Dim sSQL As String
Dim db As Database

Set db = CurrentDb

sSQL = "UPDATE tblFinal SET (tblFinal.[Short Item Description] = " _
 & "tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' " _
 & "trim(tblFinal.[License Number]) & '|' " _
 & "tblFinal.[State] & '|' & tblFinal.[City of Store])"
db.Execute sSQL, dbFailonError

几乎总是最好先创建SQL字符串,这样更容易调试。最好使用CurrentDb实例。

管道周围的单引号不应该是双引号吗?您可以使用该连接语句执行select吗?因为CurrentDb.execute需要在整个语句周围使用双引号,我相信所有内部字符串引用都是单引号,语句可以编译,但是在尝试执行那行代码时,它给了我语法错误。为了避免需要连续字符,它能仅仅是一行吗?
CurrentDb.Execute "UPDATE tblFinal SET (tblFinal.[Short Item Description] =
 & tblFinal.[2 Digit Year] & '|' & tblFinal.[License Type] & '|' 
 & trim(tblFinal.[License Number]) & '|' " & _
 "tblFinal.[State] & '|' & tblFinal.[City of Store])"