チェックリストボックスで検索画面を作成しようと考えています。
チェックリストボックスに表示(VALUE値)して、チェックした項目を取得する所までは分かるのですが、チェックした項目をコード変換してテーブルより検索する方法が分かりません。
例えば、顧客情報のテーブルより検索画面でチェックした都道府県の出身地の人を画面表示する。顧客情報のテーブルの出身地はコード(東京:1、埼玉:2)で保持している為、チェックした出身地をコード変換(■東京→1)して検索条件文を作成したい。
どのようにすれば実現できるかご教授下さい。
顧客テーブル・・・。という話もあるので、
まずDBに何を使っているのか明らかにしたほうが話は早い気がする
また、良くある手法としては
コントロール配列のIndexや、ListIndexを利用し、
都道府県コードとするやり方が多いのでは?
無駄な変換をしないで良いし
[前リンク]
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200808/08080011.txt
掲示板でアプリケーション丸々1つ作れるように指導しろと言われても
。。。みんな逃げるでしょうね。
派遣会社からプログラマ雇った方が建設的かも。
とおりすがりさんも言うように、
設計次第、自分がやるならば、
選択した都道府県のListIndexが1,2,4ならば
Where 都道府県コード in ( '1','2','4')で充分では?
意図が不明だけど、変換したいならば、
(■東京→1)
Function ConvCode(TgtData as String) AS String
Select Case TgtData
Case "東京"
ConvCode = 1
・・・。
End Select
End Function
つまり都道府県コード変換テーブルもデータベースにあるだろうから、
検索時に、顧客情報テーブルと都道府県コード変換テーブルを結合
しちゃえば、VB側でコード変換は必要なくなるかもってことで。
確かに検索時、顧客情報テーブルと都道府県コード変換テーブルを結合させて
しまえばコード変換することなく該当顧客を検索できますね。
みなさん有難うございました。
ちなみに、検索条件の画面を作成する場合、画面表示上は日本語で、
実際検索するWHERE文はコードではないのでしょうか。
一般的な方法があれば、参考までに教えてください。
> 画面表示上は日本語で、
> 実際検索するWHERE文はコードではないのでしょうか。
そうだと思います。
市町村名などは変わることがあるだろうし、
自分なら、リストボックス表示の際、面倒なので、
コードも画面表示しちゃうと思います。
1:東京
2:埼玉
「JIS市町村コード」をDictionaryクラスの連想配列
にしておけば便利かも。
「JIS市町村コード」
http://kikky.net/pc/pref_jisid.html
連想配列
http://www.atmarkit.co.jp/fdotnet/dotnettips/429dictionary/dictionary.html
ツイート | ![]() |