2012-05-15 5 views
5

Il codice seguente crea una stringa SQL che produce un errore di sintassi (3134) in MS Access.Errore di run-time 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 

Il valore della stringa "SQL" che produce l'errore di sintassi è:

"INSERT INTO tblItems (desc, descExtended, itemNumber, currentPrice) VALORI ('Granny Smith apple SLI IQF', ' GEMS OF FRUIT ', 2050791, 49) "

I nomi delle tabelle e dei campi sono corretti. I campi "desc" e "descExtended" sono di tipo Text. "itemNumber" e "currentPrice" sono Number.

+0

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

risposta

5

È il nome del campo. DESC sta scendendo in SQL non nella descrizione. DESC è una parola riservata nella sintassi SQL. Dovrai o metterlo in [] o cambiarlo. (Suggerirei quest'ultimo se non è troppo tardi per salvare il mal di testa futuro.) Evitare l'uso di parole riservate come nomi di tabelle o campi.

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

o meglio

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