• 締切済み

[Excel ADO]条件入力の簡素化

Excel2007を使い、ADOによるCSVファイルのSQL処理をしています ユーザーフォームで条件を入力し、原則以下のようにSQL文化しています 【売上データから商品名で検索する】 sql = "SELECT * FROM 売上.csv WHERE 商品名='" & 商品名.text & "' (「商品名」はユーザーフォーム上のテキストボックスオブジェクト) この際に、ANDやORなども使えたら便利だと思いますが、 SQLとして正しいものは、 商品名='A' OR 商品名='B' とせねばならず、記述がメンドウです。 入力上は 'A' OR 'B' ('A' AND 'B') OR 'C' などとして、それを内部で正しいSQLに変換するような ライブラリなどはないでしょうか? 機械的に「商品名=」という文字列を挿入するような コードを書こうかとも思いましたが、 もう少し賢いパーサーのようなもの(?)が既に存在しても おかしくない気がしました 何かご存じの方がいらっしゃいましたら教えてください よろしくお願いします

みんなの回答

回答No.1

今までの「商品名」のテキストボックスを「商品名1」に名前変更します。 そして、新規にテキストボックス「商品名2」を作ります。 次に「条件」のグループボックスを作り、その中に「条件and」と「条件or」という名前のオプションボタンを作ります。 そして、sqlを生成している部分を、以下のようにします。 sql = "SELECT * FROM 売上.csv WHERE 商品名='" & 商品名1.text & "" If Not ISEmpty(商品名2) Then If 条件and = True then sql = sql & " AND 商品名='" & 商品名2.text & "" Else If 条件or = True then sql = sql & " OR 商品名='" & 商品名2.text & "" Endif Endif

hzd00430
質問者

お礼

ご回答ありがとうございます。

hzd00430
質問者

補足

せっかくなのですが、パラメータは2つとは限りませんし、 条件となる項目は、色、サイズ、取引先名、納入先名など他にもあるのです。その辺りを勘案しますと、文字入力で条件式を書くのが早そうかと思っています。 ただ、ご提示のようなGUIでも、一から自分で作成するのではなく 可変個数の複数パラメータを柔軟かつ簡単に扱えるライブラリがあれば テキストで条件式をかくよりいっそう便利かなとは思います。

関連するQ&A