运行时错误3464

时间:2017-02-08 14:00:32

标签: sql-server ms-access-2013

我一直遇到'运行时错误3464'我的脚本如下:

Private Sub ApproveTDS_Click()
    DoCmd.SetWarnings False
    Dim usr As String

    usr = DLookup("UserID", "tt_CurrentUser")
    DoCmd.RunSQL "UPDATE Table1 SET Table1.Date = Date(), Table1.ApprovedBy = '"& usr & "' WHERE Table1.Job = '" & Me!txtJobLU & "' And Table1.SN = '" & Me!txtJobSN & "'"
    Me.Refresh
    DoCmd.SetWarnings True
End Sub

usr = varchar(255)
Table1.Date = Date
Table1.ApprovedBy = varchar(255)
Table1.Job = int
Table1.SN = varchar(50)

有什么建议吗?

谢谢你,Adam

1 个答案:

答案 0 :(得分:0)

WHERE Table1.Job = '" & Me!txtJobLU & "'

如果Job是一个int,那么将它包装在引号中是行不通的 - SQL Server认为引号中的内容是字符串。字符串不是整数,因此您会得到数据类型不匹配。删除单引号以解决此问题。

但更好的是,将来学会使用参数化查询 - 这段代码容易受到SQL注入攻击。

相关问题