病院で処方された薬や病気についてわかりやすく解説します

VBA講座3-3 医薬品検索前の処理を書く

ノートパソコンとハーブ

今回は検索前に必要な処理を行うコードを書いていきましょう。
検索方法は薬品名、一般名、識別記号で検索できるようにしますが、まずは薬品名検索からとりかかります。

スポンサーリンク

検索前の処理とは?

 

vba3-3-1btnDSearchをダブルクリック。

 

vba3-3-2上の画像のように表示されました。
「btnDSearchを押した時、以下の動作を行う」ですね。ではどういった処理を行うコードを書けばいいでしょうか?使う側に立って考えて下さい。

 

1 黒線より下の部分(医薬品情報)は全て空欄にする。

新しく検索するわけですから前に検索して表示された情報は消す必要があります。

 

2 txtGSearchとtxtKSearchを空欄にする。

薬品名で検索された時のコードを書きますのでtxtGSearchとtxtKSearchは空欄にします。もしここに検索キーワードが入っていたら何で検索されたか使用者がわからなくなる可能性があります。

 

3 txtDSearchが空欄なのに検索ボタンを押した場合の処理。

要は検索キーワードを入れる前に間違ってボタンを押した場合の処理を書く必要があります。

 

順番に解説していきます。

Left(変数.Name, 数字) = “○”

 

1つ目
テキストボックスを空欄にする処理は医薬品登録画面の最後にやりましたね。だったらそのコードをコピペしてOK…とはいかないんです!なぜならそれだとtxtDSearchまで空欄になり検索できなくなってしまいます。ではどうすればいいのか…

 

vba3-3-3上の画像を見て下さい。
左が医薬品新規登録画面で使ったコード、右が今回新しく書いたコードです。

 

赤枠で囲った部分が違いますね。

If Left(ctrl.Name, 3) = “txt” Then

文字通り訳すと…もし「コントロールの名前の左3つ(左3文字)がtxtならば」となります。これは定型文して覚えておいてもいいですね。

 

つまり「txt」で始まるコントロールが対象になります。左のコードとはその時に応じて使い分けします。

 

例えばコントロールで一括処理をしたい場合は左、名前で一括管理したい場合は右みたいに。

 

ではなぜ今回右だと都合がいいのでしょうか。

 

そこでコントロールのオブジェクト名を変えてしまいます。txtDSearch、txtGSearch、txtKSearchのそれぞれtxtの後半のtを取っちゃって下さい。すると…txDSearch、txGSearch、txKSearchとなります。

 

これで「左3文字txt」の制限を受けなくなりました!
他の方法としては後半のtを別の文字にしてもOKです。先頭3文字がtxtじゃなければ何でもいいのです。

 

2つ目は超簡単。

txGsearch = “”
txKsearch = “”

ですね。

 

3つ目も医薬品新規登録画面でやりました。

 

vba3-3-4一番下の赤で囲った部分ですね。

「txDSearchが空欄ならばtxDSearchにカーソルを合わせる」です。

 

以上で薬品名で検索する前の処理は終わりです。お疲れ様でした。次回は医薬品名で検索し、その結果を右側のリストボックスに表示する方法を解説します。
次の講座

スポンサーリンク

こちらの記事もおすすめです

関連記事

サイト内検索