この特集のトップページへ
Chapter 7:プレゼンテーション層の構築

7.4.6 顧客の検索
●[検索]ボタンが押されたときの処理

○フィールドが数値の場合
 さて,ユーザーがCOMBO_SEARCHFIELDコンボボックスで選択した列が文字列を格納するフィールドであった場合には,いま説明したようにlike演算子を使うことで実現できる。しかし,選択した列が数値を格納するフィールドであった場合,この方法ではうまくいかない。数値を格納するフィールドであった場合にlike演算子を用いると,実行時エラーが発生する。そのため,検索対象となる列が数値を保持するのか,それとも文字列を保持するのかを調べ,それぞれの場合に分岐処理をしなければならない。

 文字列であった場合には,先に説明したようにlike演算子を使えばよいのだが,数値の場合にはlike演算子は使えないので,ここでは=演算子を使って値の合致を検索条件とする。たとえば,ユーザーがCOMBO_SEARCHFIELDコンボボックスで“顧客番号”(これは顧客情報テーブルのIDフィールドに相当する)を選択し,TXT_SEARCHテキストボックスで“10”を入力したような場合には,次のようにFindメソッドを実行するものとする。

g_objRec.Find "ID = 10", _
              1, adSearchForward

 しかしこの場合,当然ながらlike演算子とは異なり,値が正確に10と合致するものしか検索の対象とならない。しかし,数値の場合には文字列の場合と異なり,10と入力したときに10だけでなく,100や1000など“10”で始まるものを検索の対象とすることはあまりないと思われる。そのため,数値の場合には,部分一致の処理を考慮しないことにする。

prevpg.gif Chapter 7 32/65 nextpg.gif