You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WHERE子句添加筛选条件时触发Run-Time Error 3075语法错误

解决VBA Update语句的Run-Time Error 3075问题

错误原因

你的代码存在两处语法错误,导致SQL语句拼接后不符合语法规范:

  • 第二个条件行开头多了一个多余的&符号
  • AND关键字前没有空格,致使前一个条件的结尾与AND直接连在一起,SQL解析时无法识别合法的运算符

另外注意字段名拼写:HoursePerDay大概率是笔误,应为HoursPerDay,如果表中实际字段是后者,必须修正这个拼写错误才能正常执行。

修正后的代码

Sub UpdateX() 
    Dim dbs As Database  

    Set dbs = OpenDatabase("SOShops.mdb") 
     
    dbs.Execute "UPDATE Employees " _ 
        & "SET Payrate = 12 " _ 
        & "WHERE DaysAtWork = " & Me.txtDaysWorked & " " _
        & "AND HoursPerDay = " & Me.txtHrsWorked 
         
    dbs.Close 
End Sub

额外建议

为了避免SQL注入和类型转换问题,推荐使用参数化查询,示例如下:

Sub UpdateX_Param()
    Dim dbs As Database
    Dim qdf As QueryDef
    Dim strSQL As String
    
    Set dbs = OpenDatabase("SOShops.mdb")
    strSQL = "UPDATE Employees SET Payrate = 12 WHERE DaysAtWork = ? AND HoursPerDay = ?"
    
    Set qdf = dbs.CreateQueryDef("", strSQL)
    ' 绑定参数
    qdf.Parameters(0) = Me.txtDaysWorked
    qdf.Parameters(1) = Me.txtHrsWorked
    qdf.Execute
    
    Set qdf = Nothing
    dbs.Close
End Sub

内容的提问来源于stack exchange,提问作者Jeffery Tengen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 14:30:00