由于字段中有逗号,MS Access 2010 SQL查询语法错误

由于字段中有逗号,MS Access 2010 SQL查询语法错误,sql,ms-access-2010,Sql,Ms Access 2010,我写的这段代码是为了在MSAccess2010中更新字段(TxTom),但一直存在问题 Private Sub cboSelector_Change() Dim myItemCode As String Dim QfindUOM As String myItemCode = Me.cboSelector.Column(0) QfindUOM = ("SELECT item_details.uom from item_details where i

我写的这段代码是为了在MSAccess2010中更新字段(TxTom),但一直存在问题

Private Sub cboSelector_Change()

  Dim myItemCode As String
  Dim QfindUOM As String

  myItemCode = Me.cboSelector.Column(0)
  QfindUOM = ("SELECT item_details.uom from item_details 
              where item_details.itemCode=" & myItemCode & " end")

  DoCmd.RunSQL (QfindUOM)

End Sub
在这一点上,我还没有抽出时间来实际更新Txtoom,因为SQL甚至不会运行。语法错误击中了我,因为myItemCode中有逗号(即822,60或6,01),我无法摆脱它,因为要求我使用的数据库将其作为库存的“项目编号”。对我如何处理这件事有什么建议吗?我尝试过添加括号和撇号,但它们似乎没有帮助。例如,对于第6,09项:

Run-time error '3075': 
Syntax error (comma) in query expression 'item_details.itemCode=6,09 end'.
还有一些项目的itemCodes中没有逗号(即6909),我得到的错误如下:

Run-time error '3075':
Syntax error (missing operator) in query expression 'item_details.itemCode=6909 end'.
我猜我的代码中出现了严重的错误,如果您能提供任何建议,我将不胜感激

感谢您抽出时间阅读此问题

添加单引号:

 QfindUOM = ("SELECT item_details.uom from item_details 
          where item_details.itemCode='" & myItemCode & "' end")
或者双倍,我忘记了访问:

 QfindUOM = ("SELECT item_details.uom from item_details 
          where item_details.itemCode=""" & myItemCode & """ end")
添加单引号:

 QfindUOM = ("SELECT item_details.uom from item_details 
          where item_details.itemCode='" & myItemCode & "' end")
或者双倍,我忘记了访问:

 QfindUOM = ("SELECT item_details.uom from item_details 
          where item_details.itemCode=""" & myItemCode & """ end")

字段“itemCode”的数据类型是什么?在我看来,有两件事情看起来很奇怪:首先,如果查询失败,请在末尾去掉
END
。其次,在
DoCmd.RunSql
之后不需要括号。第三,您运行的SQL是一个
SELECT
,因此没有副作用(它没有任何作用!)@Paolo当我删除
end
时,数据类型是“Text”@LondonRob,我得到错误运行时错误“2342”:RunSQL操作需要一个包含SQL语句的参数;我仍在试图找出如何让它更新文本框内容(我一直在使用
txtoom.value=*result of SQL here*
,但在此之前,我猜我需要先整理一下我的SQL。)“itemCode”字段的数据类型是什么?在我看来,有两件事很奇怪:首先,如果查询失败,请在末尾删除
END
。其次,在
DoCmd.RunSql
之后不需要括号。第三,您运行的SQL是一个
SELECT
,因此没有副作用(它没有任何作用!)@Paolo当我删除
end
时,数据类型是“Text”@LondonRob,我得到错误运行时错误“2342”:RunSQL操作需要一个包含SQL语句的参数;我仍在试图找出如何让它更新文本框内容(我一直在使用
txtoom.value=*这里的SQL结果*
,但在此之前,我猜我需要先整理一下我的SQL。)谢谢Anthony!现在,它已经消除了带有双引号的逗号错误,因此只剩下“缺少运算符”错误。但我无法想象哪个操作符丢失了。“结束”是什么意思?通常是一个SQL的东西。是否需要?如果我不输出“end”,Microsoft VBA会给我运行时错误“2342”:RunSQL操作需要包含SQL语句的参数。我想这至少意味着访问是必要的。只是根据TechNet的说法,这似乎不是必需的。谢谢你,安东尼!现在,它已经消除了带有双引号的逗号错误,因此只剩下“缺少运算符”错误。但我无法想象哪个操作符丢失了。“结束”是什么意思?通常是一个SQL的东西。是否需要?如果我不输出“end”,Microsoft VBA会给我运行时错误“2342”:RunSQL操作需要包含SQL语句的参数。我想这至少意味着访问是必要的。只是根据TechNet的说法,这似乎不是必需的。看见