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



■一覧表から詳細画面へ

では、次に、一覧表から詳細画面を開くという動作、作ってみたいと思います。
お店の数が10件くらいのときはいいですけど、500件とか1000件になると、お店のデータ見つけるの大変じゃないですか。なので、その辺を目的とした仕組みを作ってみようと思います。

えーっと、まず、一覧表から作りましょう。
お店の名前と、場所くらいは分かった方がいいと思うんで、[ナンバー][店名][場所]の3つのフィールドを横に並べた表形式のフォームにしたいと思います。

[場所]のフィールドには、オモテ見はちゃんと"新宿"とか"渋谷"とか表示されてるんですけど、これはルックアップウィザードで作った仕組みがうまく働いてくれてるからなんです。実際、このフィールドには、1、2、3...という数値が入ってます。[場所テーブル]が主キーにしている[場所]というフィールドと結びついているんですよね。リレーションシップの設定をしたときのこと、思い出してください。

なので、ちゃんと「場所名」が表示されるよう、一覧表用のクエリーを作りましょう。

クエリー作成の段取りはみなさんオッケーでしょうか。
デザインビュー使って、手っ取り早く作っちゃいましょう。

選ぶのは、店の名前が一覧できる[食いだおれテーブル]と、実際の場所の名前が入っている[場所テーブル]です。

出てきた「テーブルの表示」のウィンドウの中から、ふたつ、テーブルを[追加]しましょう。

で、こんな感じのクエリーにします。
[ナンバー]と[店名]は[食いだおれテーブル]から、[場所名]は[場所テーブル]から選びましょう。

ちょっと開いてみると、こんな感じ。うまく出てますよね。並び順はとりあえず[ナンバー]の順に出てればオッケーでしょう。

[一覧クエリー]とでも名前を付けて保存しておきましょう。

で、これを基に、表形式のフォームを作ります。
ウィザードでもオートフォーム機能でもなんでもよいので、とにかく表形式のフォームをひとつ作りましょう。

できました?
テキストボックスの大きさや文字の大きさ、色などは自由に変えてみてください。

[ナンバー]の見出し部分のラベルが窮屈だったら、ラベルはなくてもわかると思います。あたしは取っちゃいました。

で、一覧表示して、ぐあいをみてみてください。

わたしはちょっとフォームに細工しようと思います。

まず、「クリックしてもカーソルがフォームのテキストボックスの中に入らないようにして、
この一覧表から不用意にデータの書き換えができないよう」に、してしまおうかなと思います。

まあ、ここから書き換えができてもいいんですけどね。

これは、各テキストボックスのデータプロパティにある「使用可能」「編集ロック」と、この辺を活用します。

使用可能=いいえ

編集ロック=はい

いちいち3つも設定するのがめんどうだったら、上の図の赤い線のように、左上に向かってドラッグしてみてください。
ドラッグした経路に引っかかるテキストボックスやラベルが、全部選択されることになります。
3つのテキストボックスにハンドルが出てますよね。
この3つ以外のラベルとかも選択しちゃうと、これからやりたい設定ができないんで、その辺確認しながらドラッグしてくださいね。
3つのテキストボックスにハンドルが出てればオッケーです。
プロパティシートも「複数のオブジェクトを選択中」ってなってると思います。
3ついっぺんにプロパティの変更ができるって寸法です。



新規入力行の表示や、レコードの削除を許さないのであれば、
フォームのプロパティにそういうのがあります。→
ただ、今回は「更新の許可」だけは「はい」にしておいてください。

あとで「場所で絞り込み」ができるように、フォームを改造しますので。

と、とりあえずこんな感じになりましたが、みなさんいかがですか?え?変な店ばっかし?・・・・・・。

・・・。なんか名前付けて保存してくださいね。あたしゃ[一覧表]にしました。


さて、ではいよいよ、「コマンドボタンをクリックしたら、その店の詳細画面を出す」という仕組みを作っていこうと思います。
わざわざフォームを作るのもあれなんで、さっきまでいじってたあの紫色のフォーム、あれを使おうと思ってます。

ではでは、まずは[一覧表]のフォームに、コマンドボタンを作ります。
小さ目のでいいと思います。で、標題とか表示しきれないと思うんで、標題は全部削除しちゃって、つるつるのっぺらぼうのボタンにしましょう。

こんなふうになりました。ボタンの大きさは調節してみてください。
でも、まだこれクリックしても何も起こりませんよね。

これから作りますから、慌てず慌てずゆっくりやりましょう。

もう一回デザイン画面に戻りましょう。


コードビルダでもいいんですが、たまにはマクロを使おうかな。マクロビルダを起動しましょう。

マクロ名はなんでもいいですよ。あたしは[一覧表から詳細へ]と、ちょっとマジメな名前にしました。

で、どういうマクロを作るかというと、[食いだおれ入力]フォームを開くマクロです。
「フォームを開く」というアクションがありますので、これを選びましょう。赤い印のところですね。
クリックするとマクロアクションの一覧が出ますから、中から探してください。フォームを開くです。

で、下の「アクションの引数」を見ましょう。フォーム名は[食いだおれ入力]です。
これだけだと「そのフォームが基にしているテーブル/クエリーの1件目のレコード」が表示されるんですよね。ふつう、フォームって。

なので、そこをなんとかしようというのがWhere条件という欄です。クリックしましょう。えー、クエリーでいうところの「抽出条件」みたいなやつですね。

書き方が難しいんですけど、要するに[開こうとしているフォームの中のどれか]=[比較する値]

という感じで、等式を書くんです。慣れちゃうと簡単なんですけど、今日は式ビルダっていう機能に頼ろうかな、と思いますので、Where条件式欄の右端のビルドボタンをクリックしてください。