我在访问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 & ";")
答案 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 & ";")
此致