<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>顧客管理システム
  Page1Page2Page3Page4Page5 > Page6



絞り込みのためには、クエリーを作るのが一番なんですが、フォーム上で手っ取り早く絞り込むのにフィルタという機能があります。
考え方は選択クエリーと同じなんですけど、ただ単にレコードを絞り込むというだけなら、フィルタ機能もなかなか便利ですので、ぜひ試してみてください。

フォーム全体のプロパティの中に「フィルタ」と「フィルタ適用」というプロパティがあります。
ここに何か抽出したい条件を入力すると、絞り込んだ状態でフォームを開いてくれるんです。

そこで、このプロパティに、VBAかマクロの「値の代入」アクションを使って、抽出条件を入力するわけです。

フォームの下の方に、テキストボックスを適当にひとつ作ります。
あたしのはどうやらテキスト4という名前のテキストボックスのようです。
名前、確認するくせ変更するくせ、定着させましょうね。

で、このテキストボックスの更新後処理のイベントを書きます。
マクロでもいいんですが、コードでも2行ですみますので、こういう時はぜひコードビルダを活用してVBAを記述してみてください。

Me.Filter = "[顧客名] Like '" & Me![テキスト4] & "*'"

Me.FilterOn = True

条件式の=がLikeに変わって、右側の一番後ろにアスタリスクマークが入りました。
ちょっとややこしいですが、仕組みは同じですよ。

これで、フォームのフィルタプロパティに"[顧客名] Like '" & Me![テキスト4] & "*'"という条件式が代入され、この条件式を有功とする、という命令文になるんですね。


と、どうでしょうか。

べつに一文字だけじゃなくてもいいんですけど・・・。
検索したい顧客名の頭の部分から何文字分か入力してEnterキーを押せば、
該当する顧客がひっかかってくるはずです。

もし、先頭でなく、顧客名のどこかにあがつく顧客を全部検索、ということなら、
アスタリスクを先頭にもつけます。

"[顧客名] Like '*" & Me![テキスト4] & "*'"


今度はピンクの方のフォームに参りましょうか。
ええと、こっちはあとどんなところを手直しすればもっと便利になりそうですかねぇ。

じゃ、業種をコンボボックスにして、一覧から選択できるようにしましょうかね。
テキストボックスは、コンボボックス、リストボックスに変更することができます。
[業種]のテキストボックスを右クリックして、ショートカットメニューをたどってみましょう。

ほんとは[業種マスターテーブル]みたいなテーブルを作って、業種名を一覧できるようにした方が、業種が増えたり減ったりしたときの対応が楽になるんですけど、あんまり種類がかわんない、ということなら、値リストというのを作ってもいいでしょう。

コンボボックスの「値集合タイプ」プロパティを「値リスト」に、「値集合ソース」欄に業種名を半角の;で区切って入力します。

流通;建設/土木;サービス;その他

と、どうでしょう。
こうしておけば、入力しなくてもこの4択のなかから選ぶだけで、[流通]欄には流通か建設/土木かサービスかその他か、どれかが入力されることになるわけです。


さて、駆け足で見てまいりましたがいかがでしょう。

ここまで形になると、具体的に「こういうことはできないのかな・・・」というアイディアが浮かびやすく、またそれを調べるすべも明るくなってくると思います。

これを土台にして、項目を増やしたりしながら、みなさん独自の顧客管理システムを完成させてみてください。