将定义的变量从VBA传递给SQL

时间:2017-01-28 00:22:16

标签: sql excel vba

我已将AllParts定义为VBA中的变量。由于在SQL中格式化(见下文),我收到了错误。新的,似乎无法适当调整。有什么建议?谢谢!

and   msikp.concatenated_segments in (" & AllParts & ")

1 个答案:

答案 0 :(得分:1)

大概你的完整的 VBA行看起来像这样?





用于SQL字符串的实际引号会因驱动程序/ DBMS而异。对于SQL Server,单引号应该:




  Dim AllParts As String
 Dim SQL As String

 AllParts =“' Foo','Bar'“
 SQL =”SELECT * FROM segments AS msikp“& _
 “WHERE msikp.id> 0”& _
 “和”& AllParts&“中的msikp.concatenated_segments”
  




对于Access,转义双引号效果更好:< / p>&#xA;&#xA;

  Dim AllParts As String&#xA; Dim SQL As String&#xA;&#xA; AllParts =“”“Foo”“,”“Bar”“” &#xA; SQL =“SELECT * FROM segments AS msikp”&amp; _&#XA; “WHERE msikp.id&gt; 0”&amp; _&#XA; “和msikp.concatenated_segments in(”&amp; AllParts&amp;“)”&#xA;  
&#xA;&#xA;

如果有,那么它应该可以工作,但要注意使用连接串联构建SQL可能会使您暴露于SQL注入攻击。

&#xA;