<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>食いだおれデータベース
  Page1Page2Page3Page4Page5Page6Page7Page8Page9Page10Page11Page12Page13



■Visible(可視)を利用した「隠しわざ」

マクロの2行目に、「値の代入」というアクションを選びます。で、このアクションの引数欄を見ましょう。

多分、アイテムと式という2つの枠があると思います。

代入先(アイテム) = 代入する値(式)

という構図になります。で、アイテムのところなんですが、ここに「食いだおれ入力フォームのテキスト19の可視プロパティ」という意味の入力をしないとイケマセン。
さっき使った式ビルダがお勧めです。

順番に左側から選択して、オレンジ色で囲んだVisibleとういやつをダブルクリックしましょう。このVisibleというのが、「可視」というプロパティの正式名称です。

と、式が出ましたよね。

Forms![食いだおれ入力]![テキスト19].Visible

これで、「食いだおれ入力というフォームのテキスト19の可視プロパティ」という意味です。
完了。[OK]ボタンをクリックして、マクロウィンドウに戻りましょう。
これはもうこういう書き方を必ずしますので、徐々に慣れていってください。
式ビルダを使わなくても正確に入力できるようになると、さらに開発効率がアップすると思いますよ。

で、式の方には「いいえ」をあらわすFalseという単語を入力します。半角ですよ。

ちゃんと構文として書くと

Forms![食いだおれ入力]![テキスト19].Visible=False

ということですね。このマクロをVBAで書いたとしたら、ってことになりますかね。

で、これとおんなじようなことを、ラベル21にも、コマンド16にも、コマンド17にもやります。
書き方はもうよいですよね。チャレンジしてみてください。

コメント欄を利用して、何をどこに代入するよう指定したか、わかるようにしてみました。
別にコメント欄は入力する必要ないんですけど、こうしておくとよくわかりますよね。

じゃ、マクロを保存して閉じましょう。で、再び一覧表フォームを開きます。


あらっ不思議!表示されなくなりました。でも、なくなっちゃったわけじゃないんですよ。
マクロの中でプロパティを変更して、フォーム内のテキストボックスを見えなくしちゃったり、いろいろできるんですね。


■一覧表からデータの絞り込み

さて。。こんなもんですかね。ここまでいかがでしょうか。
・・・ん??[場所名]で絞り込みしたい???・・・・・店の件数が多くなってくると、探しにくい??

なるほど・・・わかりました。じゃ、ひとつ挑戦してみましょう。

クエリーで絞り込む方法は、みなさんよろしいですよね。いちおう、一番基本となる方法ですもんね。
では今回は、クエリーを使わず、とにかくこのフォームの中だけで、絞り込みをしてみましょう。

まず、上の図のように、フォームのヘッダーかフッター部分を利用してコンボボックスをひとつ設置します。
あたしゃフッター部分に作りました。適当に広げて使いましょう。

で、このコンボボックスの名前を[検索]にしました。コンボxxじゃ味気ないし、覚えにくいし・・・。

ラベルもうまく広げて、工夫してみてください。あたしは”場所で絞り込み”と、そんなふうに書き込んでみました。


で、次にこのコンボボックスの中に、場所の一覧を表示させます。[場所テーブル]の中身を表示すればオッケーですよね。
ただ、今回のこのコンボボックスはあくまでも非連結です。基にしているテーブルやクエリーとの関連を持ちません。
そりゃそうですよね。場所名を選ぶだけなんだし。
なので、このコンボに必要なのは、[場所名]だけ、ということになります。

コンボボックスのプロパティを見ます。
もうなんかプロパティって見飽きちゃいましたね・・・。
でも、もうちょっとがんばりましょう。
プロパティシートとも、長い付き合いになりますよ。。きっと・・・。

えー、コントロールソースは絶対空欄。
ここに何か入力したり選んだりしちゃイケマセン。
ここで選択した"新宿"とか"渋谷"とかいう値が、基にしてるクエリーやテーブルのフィールドに格納されちゃまずいですよね。
選択用だけなんだから、必要ないんです。



で、いじるのは「値集合ソース」欄。[場所テーブル]を選びましょう。

で、[場所テーブル]と設定しただけだと、テーブルの中の一番先頭のフィールドが表示対象になります。
先頭のフィールドは主キーにもなっている[場所]。実際には1,2,3,4...と数値が入ってます。
[場所名]だけほしいんで、この場でちょこっと簡易クエリーみたいなのを作ります。右端のビルドボタンをクリックしましょう。

突然妙な警告メッセージが出ますが、よく読むと望むところじゃないですか。やってもらいましょう。[はい]をクリックします。

すると?ああー。やっぱり出てきましたね。クエリーのデザイングリッドですね。でも、これはクエリーを作ってるわけじゃないんですよね。
ほんとはSQL文っていうのを書かなきゃいけないんですけど、これが結構めんどうな構文なんで、このデザイングリッドを使って書こう、というわけです。

えー、やることはひとつだけ。[場所テーブル]から2番目の[場所名]だけ選びます。
これで、コンボボックスの中には、[場所名]だけが使われます。他のテーブルと結びつかない非連結のコンボボックスですから、これで十分でしょう。

で、クエリーを作ってるわけじゃないので、保存のツールボタンはクリックしないこと。あくまでも右上の閉じるボタンで強制的に閉じます。

ひっ!!

なんだ・・・ものものしいメッセージだけど、[場所名]だけ表示するように書き換えましたけど、いいんですか?ってことですよね。
これ。なんかもっとソフトなメッセージは出せないのかねぇ。びっくりするじゃありませんか。

当然[はい]をクリックします。

で、戻ってみると、SELECTなんとかかんとかって、変な英文みたいなのが出てますね。
これがいわゆるSQL文。
さっきの「場所テーブルから場所名だけを取り出して表示」みたいなのをSQL文というやつにすると、こうなるわけです。

さて、フォームビューに切り替えて、コンボボックスの中に場所名がいろいろ表示されるかどうか確認しましょう。


余談ですが、フォームのプロパティの「更新の許可」を「いいえ」にしている場合、コンボボックスから値を選ぶことができなくなります。

これも一種の更新なんですね。非連結のコンボボックスでも同じことなんです。