【问题标题】:VBA Run-time error 3134VBA 运行时错误 3134
【发布时间】:2012-05-15 02:22:13
【问题描述】:

以下代码会创建一个 SQL 字符串,该字符串会在 MS Access 中产生语法错误 (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”字段属于文本类型。 “itemNumber”和“currentPrice”是数字。

【问题讨论】:

标签: sql vba syntax


【解决方案1】:

这是您的字段名称。 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)

【讨论】:

    猜你喜欢
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多