2017-01-28 4 views
0

VBAで変数としてAllPartを定義しました。 SQLでフォーマットされたように(下記参照)、私はエラーが発生しています。これを初めて知り、適切に微調整するように見えることはありません。助言がありますか?ありがとう!定義済みの変数をVBAからSQLに渡す

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

1行でコードが不足しています。残りの部分を書き留めて、推測する必要はありません。 –

答えて

1

おそらくあなたフル VBAラインは次のようになりますか?

SQL文字列に使用される実際の引用符は、ドライバ/ 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 & ")" 

を、二重引用符は良い仕事エスケープ:

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 & ")" 

それは、それは動作しますが、連結している建物のSQLを注意する必要がありますない場合の入力がSQLインジェクション攻撃にさらされる可能性があります。

関連する問題