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

MS Access:在VBA/SQL的INSERT/SELECT语句中用变量赋值

解决方法

直接修改SQL语句的SELECT部分,将原本从源表获取的tbl_BOM_Requirments.ID替换为变量JbNum,同时修正字符串拼接的引号问题,去掉无效的赋值语句。修改后的完整代码如下:

Dim db        As DAO.Database
Dim strSQL    As String
Dim PrtNbrGt  As String
Dim JbNum     As String

JbNum = Me.[tblManufactured.Job Number]
PrtNbrGt = Me.SCSPartNumb

Set db = CurrentDb
strSQL = "INSERT INTO tblMaterialRequiremnt ( [Customer Part Number], [Job Number] ) " & vbCrLf & _
"SELECT tbl_BOM_Requirments.RequiredMaterialPrtNum, '" & Replace(JbNum, "'", "''") & "' " & vbCrLf & _
"FROM tbl_BOM_Requirments " & vbCrLf & _
"WHERE tbl_BOM_Requirments.PrtNmber_LinkField = '" & Replace(PrtNbrGt, "'", "''") & "'"

db.Execute strSQL, dbFailOnError

关键修改说明

  • 替换Job Number的取值来源:将SELECT语句中的tbl_BOM_Requirments.ID替换为'" & Replace(JbNum, "'", "''") & "',把窗体中获取的JbNum值作为固定值插入目标表的[Job Number]字段。Replace函数用于处理变量中包含单引号的情况,避免SQL语法错误。
  • 修正WHERE子句的引号:原代码WHERE部分引号拼接错误,改为用单引号包裹字符串变量,同样通过Replace处理特殊字符。
  • 移除无效代码:删除[Job Number] = JbNum这行无效赋值语句,它无法影响SQL执行结果。
  • 添加错误处理:db.Execute后加上dbFailOnError参数,便于捕获执行过程中的SQL错误,方便调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 02:50:40