5

次のコードは、MS Access で構文エラー (3134) を生成する SQL 文字列を作成します。

        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」フィールドはテキスト型です。「itemNumber」と「currentPrice」は Number です。

4

1 に答える 1

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)
于 2012-05-15T02:30:52.767 に答える