A)我正在从旧版应用程序收集数据;数据元素包含空格和连字符(CBR-CR-22-2)或(CBR-CR-22-2)
B)在VBA中,当构建函数并使用这些数据元素传递SQL参数时,代码会生成错误(很多!)
C)我缩小范围来确定所有错误都是由数据元素的格式引起的
D)引起问题的数据元素是大约30个表中的PRIMARY KEY,由旧版应用程序生成
(请参见代码)我尝试了语法:
A)strDataElm
B)[strDataElm]
C)& """ & strDataElm & """
strSourceSql = "SELECT " & strSourceFld & " FROM " & strSourceTbl & " WHERE " & strSourceFld & " = " & strDataElm
在它给出的立即窗口中
SELECT NumeroCtl FROM tblLnkCtrl WHERE RISKID = CBR - CR - 22 - 2
在理想的世界中,我希望按原样通过CBR - CR - 22 2
或没有空格CBR-CR-22-2
的strDataElm;删除连字符会带来问题,因为数据是主键并在其他应用程序中重复使用。.
答案 0 :(得分:2)
如前所述,最好使用参数化查询,但是我知道-连接字符串的方法太令人高兴了。
尝试一下:
strSourceSql = "SELECT " & strSourceFld & " FROM " & strSourceTbl & " WHERE [" & strSourceFld & "] = [" & strDataElm & "]"
如果您通过字段引用
而且,如果您自己传递值
strSourceSql = "SELECT " & strSourceFld & " FROM " & strSourceTbl & " WHERE " & strSourceFld & " = " & "'" & strDataElm & "'"