<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--フォームで選んだレコードだけ印刷する仕組み
  1 > 2 > 3



で、新しくクエリを作りましょう。
[テーブル]の中から[出力](Yes/No型のフィールド)だけ選んで、下の図の赤丸のツールボタンをクリックして、「更新クエリ」に変更します。

「レコードの更新」欄にFalse(Noでもいいのかもしれませんが、わたしはいつもFalseと書くクセがあって。別に意味はないんですが)と書きます。半角ですよ。
なんか適当な名前をつけて保存してください。わたしは[クリア]にしました。



今度はフォームです。フッター部分にでも、ひとつコマンドボタンを作りますかね。
で、このボタンのクリック時のイベントで、さっきのクエリを開きます。

あ、マクロでもいいですよ。マクロでしたら「クエリを開く」アクションです。



んじゃテストテスト・・・。

適当なレコードにチェックがついてることを確認して・・・。コマンド13をクリック!

ギャー!なにこれ!

・・・落ち着きましょう(誰がだ)。
[クリア]は更新クエリなので、こういったメッセージが必ず出るんですよね。エラーではなくて、確認メッセージの類です。

メッセージにはOKして、と・・・。

・ ・・あれ?け、結局変わってないんですけど・・・。



あ、そうか。こういうときこそ、「再クエリ」しなくちゃいけなかったんですよね。
フォームとかデータシートビューとかっていうのは「開いたときの状態」を保持しますから、更新クエリとか使ってデータの更新を行っただけでは最新の状態を表示してくれないんでした。
その辺も含めて・・・・。

と、こんな感じにしてみました。SetWarningsiっていうのは「メッセージの設定」っていうマクロアクションにあたります。
False(いいえ)にしておくと、以後確認メッセージは出ません(エラーとかは出ます)。いちおう、この処理を抜ければ、確認メッセージは出るようになるんですけど、いちおう気持ち的には元に戻してから処理を終わらせたいと思ったりなんかしてるんで最後にもう一回SetWarningsを使ってTrue(はい)の状態に戻してます。

今度はどうでしょう?

チェックボックスをいくつかオンにしても、オフになりますか?



この仕組みを応用すれば、たとえば「1組の人だけ全部チェックをする」とか、そういった操作もできそうですね。

フォームのヘッダー部分を広げて、コンボボックスとコマンドボタンをひとつずつ作るとしましょう。
コンボボックスの方は、いちいち「1組」とか入力するのが面倒だから設けているだけで、別にテキストボックスでもいいんですけどね。

まあ、今回はコンボでやってみましょう。
ほんとは、テーブルの中から値を拾うようにした方がいいんですが今日はもうめんどっちいので「値リスト」を作ります。

1組;2組;3組;4組;5組

と、半角のセミコロンで区切って、コンボに表示させたい値を入力します。



でもって、今度はクエリを作りましょう。要領はさっきと同じなんですが、抽出条件をひとつ設けます。
あのフォームの、あのコンボボックスの中身、っていうことですね。
で、なんか適当な名前つけて保存します。



コンボのお隣に設けたコマンドボタンのクリック時のイベントを作ります。
内容はさっきと同じで、ただクエリの名前が違うだけですね。今作ったクエリ動かすんですよ。
どうでしょう。うまく動きますか?

フォームビューにして、コンボボックスからどれかクラスを選んで、コマンドボタンをクリックすれば・・・。
そのクラスの人全員にチェックがつくんじゃないでしょうか。



え?コマンドボタンの絵を変えたい?

ああ、なるほど。んじゃ、変更したいコマンドボタンの「書式プロパティ」を見てみてください。
絵はやめて文字にしたいなら、「ピクチャ」の中の(ビットマップ)っていう文字を根こそぎ削除して空欄にして、「標題」っていうところに「印刷」とか「プリント」とか入力してください。
絵を選びたいときは右端に出るビルドボタンをクリックしましょう。

いろいろありますよ。

また、自分で作った画像とかを使いたい場合は、「参照」ボタンをクリックして、その画像のファイル名を選びます。

でも、あんまし訳のわかんない画像を使うと、そのボタンが何の役割を果たすのかわかんなくなっちゃいそうなんで、その辺気をつけてくださいね。



こういう仕組み作りは、決まったやり方はないんですけども、フォームとかテーブルとかの「役割分担」をしっかり把握しておかないと、どこから手をつけてよいかすごくわかりにくいと思うんです。テーブルに持っておくべき機能、フォームで調節する機能、クエリが果たす機能・・・この辺を少しずつ理解していくことで、「こういう画面を作りたいんだけどなぁ」といったアイディアと実際の細かい操作とが結びついていきますよ。それにはやっぱり、小さなデータベースをいくつか作って、慣れていくのが一番だと思います。

がんばりましょう。