UPDATE语句中的运行时错误3144语法错误

时间:2020-07-06 09:35:08

标签: vba ms-access

我在访问VBA中更新SQL语句时出错。 这是代码:

Dim id As Integer, docNo As String, pNo As String
id = Me.txtID.Value
pNo = Me.txtPENo.Value
docNo = Me.txtdocNo.Value
db.Execute ("UPDATE tblPE SET (PENo='" & pNo & "',DocNo='" & docNo & "') WHERE ID=" & id & ";")

2 个答案:

答案 0 :(得分:1)

出于可读性和可维护性,请考虑通过QueryDefs进行参数化,并避免在SQL中串联和标点VBA变量:

Dim db As Database, qdef As QueryDef
Dim sql As String

' PREPARED STATEMENT (NO DATA)
sql = "PARAMETERS [prm_pNo] TEXT, [prm_docNo] TEXT, [prm_id] INTEGER;" _
       & "UPDATE tblPE SET PENo=[prm_pNo], DocNo=[prm_docNo] WHERE ID=[prm_id];"

Set db = CurrentDb
Set qdef = db.CreateQueryDef("", sql)

' BIND PARAMS
qdef!prm_id = Me.txtID.Value
qdef!prm_pNo = Me.txtPENo.Value
qdef!prm_docNo = Me.txtdocNo.Value

' EXECUTE ACTION
qdef.Execute

' RELEASE RESOURCES
Set qdef = Nothing: Set db = Nothing

答案 1 :(得分:0)

问题在于SQL语句中的多余括号。相反,请尝试:

    db.Execute ("UPDATE tblPE SET PENo='" & pNo & "',DocNo='" & docNo & "' WHERE ID=" & id & ";")

此致