- ベストアンサー
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」なしで書く場合は? -------------------
- みんなの回答 (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からの動作確認は行っていません。ごめんなさい。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
select * from aaa where カラムa & '-' & カラムb & '-' & カラムc = '0-1-2'; でどうでしょう?
お礼
&ではなく+で試したら、成功しました。 ありがとうございました。
お礼
sql_str = "select * from aaa where a+'-'+b+'-'+c='0-1-2'" 教えていただいたように、↑でいけました。 ありがとうございました。