2012-05-15 38 views
5

Aşağıdaki kod, MS Access'te bir sözdizimi hatası (3134) üreten bir SQL dizesi oluşturur.VBA Çalışma zamanı hatası 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 

yazım hatası üretir "SQL" dizge değeri:

"tblItems (azalan, descExtended, itemNumber, currentPrice) DEĞERLERİ ('apple Granny Smith SLI IQF', 'INSERT INTO MEYVE YAĞI ', 2050791, 49) "

Tablo ve alan adları doğru. "Desc" ve "descExtended" alanları Metin türündendir. "itemNumber" ve "currentPrice" Sayısı'dır.

+0

Benzer için: http://stackoverflow.com/questions/1447623/do-i-have-an-error-in-this-sql-created-using- vba – xQbert

cevap

5

Bu sizin alan adınız. DESC, SQL'de tanımsız olarak iniyor. DESC, SQL sözdiziminde ayrılmış bir sözcüktür. Onu [] içine koymanız veya değiştirmeniz gerekecek. (Gelecekteki baş ağrısını korumak için çok geç değilse, ikincisini öneririm.) Ayrılmış kelimeleri masa veya alan adları olarak kullanmaktan kaçının.

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

veya daha iyi

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