• ベストアンサー

accessで複数カラムの組み合わせ文字列をselect

エクセルVBAからaccessにクエリを送る際のselectクエリの書き方について教えてください。 VBAから指定する文字列strが、accessのカラムa,b,cのハイフン区切りの文字列と一致した場合のみselectしたいのですが、select文はどのように書けばよいでしょうか? (VBAでstrをハイフンなしにばらさない場合) ------------------- str='0-1-2' ↓ select * from aaa where カラムa=0 and カラムb=1 and カラムc=2 ↓ 「and」なしで書く場合は? -------------------

質問者が選んだベストアンサー

  • ベストアンサー
  • rio_d
  • ベストアンサー率47% (71/149)
回答No.2

こんにちは。 結構素直に書いてよいかと思います。 select * from aaa where カラムa + '-' + カラムb + '-' + カラムc = '0-1-2'; ただし、カラムa~cが数値型の場合は、trimやstrを使います。 select * from aaa where trim(str(カラムa)) + '-' + trim(str(カラムb)) + '-' + trim(str(カラムc)) = '0-1-2'; TrimやStrはAccessのSQLで使えるようです(これは確認済み)。 SQL発行の際は、 sSql = "select~ カラムc = '" & str & "'" でOKかと思います。 Excelからの動作確認は行っていません。ごめんなさい。

ohnotellme
質問者

お礼

sql_str = "select * from aaa where a+'-'+b+'-'+c='0-1-2'" 教えていただいたように、↑でいけました。 ありがとうございました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

select * from aaa where カラムa & '-' & カラムb & '-' & カラムc = '0-1-2'; でどうでしょう?

ohnotellme
質問者

お礼

&ではなく+で試したら、成功しました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう