VBA运行时错误3134

时间:2012-05-15 02:22:14

标签: sql vba syntax

以下代码创建一个SQL字符串,该字符串在MS Access中产生语法错误(3134)。

        sql = "INSERT INTO tblItems (desc, descExtended, itemNumber, currentPrice) " & _
                     "VALUES (" & _
                     "'" & rs.Fields("Field6") & "', " & _
                     "'" & rs.Fields("Field7") & "', " & _
                     rs.Fields("Field1") & ", " & _
                     rs.Fields("Field8") & _
                     ")"
        db.Execute sql, dbFailOnError

产生语法错误的“sql”字符串的值为:

“INSERT INTO tblItems(desc,descExtended,itemNumber,currentPrice)VALUES('APPLE GRANNY SMITH SLI IQF','GEMS OF FRUIT',2050791,49)”

表和字段名称是正确的。 “desc”和“descExtended”字段的类型为Text。 “itemNumber”和“currentPrice”是数字。

1 个答案:

答案 0 :(得分:5)

这是你的字段名称。 DESC在SQL中下降而不是描述。 DESC是SQL语法中的保留字。您需要将其放入[]或更改它。 (我推荐后者,如果它为时已晚,以免挽救未来的头痛。)避免使用保留字作为表或字段名称。

INSERT INTO tblItems ([desc], descExtended, itemNumber, currentPrice) 
VALUES ('APPLE GRANNY SMITH SLI IQF', 'GEMS OF FRUIT', 2050791, 49)

或更好

INSERT INTO tblItems (Descript, descExtended, itemNumber, currentPrice) 
VALUES ('APPLE GRANNY SMITH SLI IQF', 'GEMS OF FRUIT', 2050791, 49)