将定义的variables从VBA传递给SQL

我已经将AllParts定义为VBA中的variables。 如在SQL中格式化(见下文),我得到一个错误。 新的这一点,似乎无法适当调整。 有什么build议么? 谢谢!

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

想必你的完整的 VBA线看起来像这样?

用于SQLstring的实际引号会因驱动程序/ DBMS而异。 对于SQL服务器,单引号应该这样做:

 Dim AllParts As String Dim SQL As String AllParts = "'Foo', 'Bar'" SQL = "SELECT * FROM segments AS msikp " & _ "WHERE msikp.id > 0 " & _ "and msikp.concatenated_segments in (" & AllParts & ")" 

对于Access,逃脱双引号更好地工作:

 Dim AllParts As String Dim SQL As String AllParts = """Foo"", ""Bar""" SQL = "SELECT * FROM segments AS msikp " & _ "WHERE msikp.id > 0 " & _ "and msikp.concatenated_segments in (" & AllParts & ")" 

如果是这样,那么它应该工作,但要注意,通过连接input来构buildSQL可能会使您暴露于SQL注入攻击。