【问题标题】:Runtime Error 3134 - Syntax Error in INSERT INTO Statement运行时错误 3134 - INSERT INTO 语句中的语法错误
【发布时间】:2017-04-16 14:05:50
【问题描述】:

我正在尝试修复它大约一个小时,但它不起作用请帮助我:(

CurrentDb.Execute "INSERT INTO match_day( home_team, away_team, date, time, home_score, away_score, stadium) " & _
                  " VALUES('" & Me.textHT & "','" & Me.textAT & "',#" & Me.textDATE & "#,#" & Me.textTime & "#," & Me.textHS & "," & Me.textAS & ",'" & Me.textSTD & ",')"

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    日期和时间字段是否被视为保留字并应括在括号或刻度中以将其限定为列名...

    ..., [date], [time], ...
    

    但我认为它很可能是插入值的最后结束之前的尾随逗号 ) 使它看起来想要插入另一个字段。

    Me.textSTD & ",')"
    

    改成

    Me.textSTD & "')"
    

    【讨论】:

    • 更不用说它容易受到 SQL 注入的攻击。
    【解决方案2】:

    我遇到了类似的错误 - 感谢这篇文章,我意识到我在表格中使用了保留名称“note”(而不是“notes”)。

       StrSQL = "INSERT INTO option_notes ( OPTION_ID , USER_ID , [NOTE] )  VALUES ( " & currID & " , " & currUserID & " , '" & currNote & "' ) ; "
       CurrentDb.Execute StrSQL
    

    我最终更改了字段名称 - 但是,用 [ ] 包装字段名称允许代码正确执行。

    【讨论】:

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