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



<食いだおれデータベース作戦 8>

お、およよ〜ん・・・。
なんかブキミな画面が出てきましたねぇ・・・。

この画面は「式ビルダ」といって、式を作るための手助けをしてくれる画面なんです。
上の図でいくところの、ピンク色の枠内に、正しい式が入るよう、画面にちょこちょこ表示されてるアイテムを利用します。

じゃあ、やってみましょう。

左端の方を見てください。テーブルとかクエリーとか、なんかいろいろ並んでますよね。
ええとー、今回の式で必要なのはまず[食いだおれ入力]のフォームだから、フォームのフォルダをダブルクリックしましょう。
すると、読み込まれたフォーム(今、開いているフォーム)と、すべてのフォームってありますね。すべてのフォームの方見ましょうか。

すると、[食いだおれ入力]、出てきますね。これクリックすると、右側にぞろぞろいろいろ出てくると思います。

解説しよう(笑)。ピンクの枠は、この食いだおれデータベースの中に存在するオブジェクトと利用できる関数などを参照する場所。
中からどれかを選ぶと、次にきみどり色のところに、その中に含まれる細かいものが表示される。
今は「フォーム」を選んでるので、そのフォーム内にあるテキストボックスとかラベルの名前が一覧表示されるわけです。
で、オレンジ枠はそのテキストボックスとかラベルのプロパティ名。そう、プロパティの名前は、プロパティシートを離れると、なんとこんな訳の分からん英単語なんですね。

左から順序良く、必要なものをクリックして式に利用するのです。では、緑色の枠の中から、[ナンバー]をダブルクリックしましょう。
[ナンバーラベル]じゃないですよ。[ナンバー]です。

と、式が表示される欄に、Forms![食いだおれ入力]![ナンバー]と入りました?
まあ、自分で入力するより、ちょっぴり楽かな〜という程度なんですけどね。

で、続けて=を半角で入力。キーボードからでもいいし、なんかそれっぽいボタンが用意されてますよね。どっちでもいいですよ。

で、今度は[一覧表]フォームの[ナンバー]を、やっぱりダブルクリックします。

Forms![食いだおれ入力]![ナンバー] = Forms![一覧表]![ナンバー]

って、なりました?ヘンになっちゃった方は、いったん全部削除して、最初からやりなおしましょう。
一番右端にカーソルぴかぴかしてます。BackSpaceキーで消えますよね。

ここまでオッケーでしたら、後はこの「フォームを開く」用にチョコっと書き換えます。
というのも、開くフォームはもう[食いだおれ入力]とわかってますから、この式の先頭のForms![食いだおれ入力]!部分は、式がダブっちゃうんですね。
なので、下のようにします。

[ナンバー] = Forms![一覧表]![ナンバー]

これで、「食いだおれ入力のナンバーが、一覧表のナンバー(ボタンをクリックしたレコードの)と同じやつだけを表示する状態でフォームを開け」という意味になります。
式が正しく入ったことを確認したら、[OK]ボタンをクリックして式ビルダを終わらせます

これでOK。マクロを保存して閉じましょう。で、先ほどの一覧表を再び開きます。


さて、どうかなどうかな。

あ?あれ???開くけど、まっしろだ・・・。

ここでよく思い出してください。
さっきまでこういう仕組みを作るツモリがなかったんで、紫色の方のフォームの、「開くとき」に、新規レコードに移動するような処理を書きましたよね。
え、覚えてない?そんなー。思い出してくださいよー。

なので、今これは、新規レコード入力状態になっちゃってるんですね。うーん、ちとまずかったか・・・。

どうしようかな・・・・・・・・・・・・・・・。とりあえず、「開くとき」のイベントを殺して試してみますか。


紫色のフォームの方を、デザインビューにひっくり返します。で、フォームのプロパティを・・・あ、もうみなさんこの辺の操作はばっちりですね。

で、開くときのイベントを見ましょう。ビルドボタンをクリック、で出ますよね。

これこれ。DoCmd.GoToRecord.....ってやつです。これが働いてて、フォーム開くとすぐ新規レコード入力状態になっちゃうんですね。
普段はいいんですけどねぇ。

とりあえずこれを働かなくします。消しちゃってもいいんですけど、左端に半角のシングルコーテーション'を入力すると、字が緑色っぽくなって(カーソル他の行に移動させたときに)、この行はコメントということで、無視されます。

'DoCmd.GoToRecord , , acNewRec

ですね。緑になりました?

で、紫色の方のフォームを保存して閉じましょう。今度はどうかな。


出ました?出ます出ます???やりましたねぇ。

うーん、ここまで来ると欲が出てくる。Where条件で絞り込んでデータを表示してるから、対象となってるレコードは1件なんですよね。
この場合。なので、ピンク色の枠内の、Count関数のところ、なんか見えてるとカッコ悪いっすねぇ。

1件しかないから、とかのボタンも必要ないし・・・。

じゃ、そこんとこ考えてみましょうか。

では、テキストボックスと、コマンドボタンふたつ、ラベルをひとつ。
これらをすべて「見えなくする」という処理を作ってみましょう。
それぞれ名前を確認しましょう。
あたしは、Count関数の入ってるテキストボックスはテキスト19、その右側のラベルはラベル21、コマンドボタンはコマンド16コマンド17でした。
みなさんのはどんな名前がついてるでしょう。

で、これらのプロパティにはすべて「可視」というのがあります。
書式のプロパティの中ですね。これを「いいえ」にすると、そのテキストボックスやラベルは、存在はしてるけど、見えない、クリックしても反応がない、使えないという状態になります。これを、マクロを使って操作しようというわけです。

テキストボックスやボタンの名前が確認できたら、フォームは両方いったん閉じて、[一覧から詳細へ]マクロを出しましょう。出すって、えー、デザイン画面ですよ。