以下代码创建一个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”是数字。
答案 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)