MS Access:INSERT INTO语句返回语法错误

时间:2017-01-13 19:51:20

标签: vba ms-access

我无法弄清楚错误。我已经尝试添加更多括号,但这没有帮助。此代码检查是否已存在名为“InsertFilmZip”的查询,如果没有,则使用给定语句创建它。出于某种原因,它说有Run-time error 3139: Syntax error in PARAMETER clause,但我找不到错误。

Private Sub Command8_Click()

    Dim dbsCurrent As Database
    Set dbsCurrent = CurrentDb

    Dim query As QueryDef
    Dim sql As String
    Dim item_val As String

    item_val = Me.Text314

    For Each query In CurrentDb.QueryDefs
      If query.Name = "InsertFilmZip" Then
        Exit For
      End If
    Next query

    If query Is Nothing Then
      sql = "parameters " & "P1 Number" & _
        "INSERT INTO [tbl_FilmZipInfo] " & _
        "(qty_per_unit) " & _
        " VALUES ([P1])" & _
        "WHERE (((tbl_FilmZipInfo.qty_per_unit)='" & Me.Text314 & "'))"
      Set query = CurrentDb.CreateQueryDef("InsertFilmZip", sql)
    End If

    query.Parameters("P1").Value = Me.Text317

    query.Execute

End Sub

1 个答案:

答案 0 :(得分:0)

你的SQL没有意义,所以试试这个调整:

  sql = "parameters P1 Long;" & _
    "UPDATE [tbl_FilmZipInfo] " & _
    "SET qty_per_unit = [P1] " & _
    "WHERE qty_per_unit = " & Me.Text314 & ""