2012-05-15 134 views
5

以下代碼創建一個SQL字符串,它在MS Access中產生語法錯誤(3134)。VBA運行時錯誤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」是Number。

+0

類似:http://stackoverflow.com/questions/1447623/do-i-have-an-error-in-this-sql-created-using- VBA – xQbert

回答

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)