2012-05-15 3 views
5

다음 코드는 MS Access에서 구문 오류 (3134)를 생성하는 SQL 문자열을 만듭니다.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"열의 값 :

"tblItems (내림차순, descExtended, itemNumber, currentPrice) VALUES ('APPLE 그래 니 스미스 SLI IQF', '삽입 반 GEMS OF FRUIT ', 2050791, 49) "

테이블 및 필드 이름이 정확합니다. "desc"및 "descExtended"필드는 텍스트 유형입니다. "itemNumber"및 "currentPrice"는 숫자입니다.

+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) 
관련 문제