<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002チョ〜入門>年賀状の表と裏
  



全部出さない

レポートのデザインは整いました???
そしたらですねぇ・・・。はがきを出す出さないの調節ができるよう、一工夫してみましょうか。



もとのテーブルに、「印刷フラグ」なんて名前のフィールドを作ります。
あ、フィールド名は別に何でもいいんですけど、「フラグ」とかつけると、なんかかっこよくないです?
データ型はYes/No型です。

テーブルを保存して、データシートビューにしてみると、↓こんな風になってます。
チェック付けたものだけ印刷するようにしましょうか。

いろんなやり方がありますが、一番わかりやすいのはクエリを使う方法じゃないかなと思います。
こんなクエリを新規に作成しましょう。

で、このクエリを開くと、こういう結果が返ってきます。印刷フラグにチェックが付いてるやつだけ、出てくるわけです。

保存して閉じます。[クエリ1]でいいや。



このクエリを、さっきの、住所面の印刷をする方のレポートの「レコードソース」にすればOKです。



もうちょっと気の利いた「一覧画面」みたいのがほしいのなら・・・。
オートフォーム:表形式機能を使って、表形式のフォームを作りましょうか。

デザインを少し調整してから、フォームフッターにコマンドボタンを付けて、コレクリックしたらはがきの印刷が始まるようにしましょうかね。

クリック時のイベントを、「マクロビルダ」を使って作りましょう。「コードビルダ」でももちろんいいですよ。
コードで書くときは、DoCmd.OpenReport  "レポート名"  です。
まあ、よく分からない場合は、今日のところはマクロ作ってください。

マクロ名は、後でわかりやすい名前なら、別になんでもいいですよ。

マクロアクションで「レポートを開く」を選び、引数に「レポート名」を指定します。
必要に応じて「ビュー」も指定します(わたしはプリンタ持ってないからプレビューにするしかないんですけど)。
画面で確認せず、すぐ印刷が始まってもいいのなら「印刷」、一度画面で確認してからにしよう、という場合は「印刷プレビュー」を選びます。

今回はこの二つだけでいいのですが、ひとつ、オマケでお話をいたします。
Where条件式というのがありますよね。
これ、今回は、入力してもほとんど意味がないんです。だから、上の図は、余計な入力がしてある図ですね。
Where条件式とは、このレポートを印刷するレコードを選び出すための条件式を入力する引数です。
だから、今回は必要ないんですよ。「印刷フラグがYesのものだけ出力するクエリ」を、このレポートのレコードソースにしてますからね。

クエリを作らず、テーブルをそのままレポートのレコードソースにしている場合は、このWhere条件で「印刷フラグがYesのものだけ出力」という指定をすることができます。クエリが嫌い、クエリなんか作りたくない(それはそれで少々考え物ですが)人は、この引数を活用してもよいと思います。
詳しくはヘルプを参照してみてください。

今回は、Where条件式は、必要アリマセンので、空欄のままでOKです。



でも、コレだけだと実は少々難があるんですよね・・・。
ホラ、レポートの左端に、エンピツマークが出ることがあるじゃないですか。「そのレコードはただいま編集中」っていう意味のマークですよね。
コレが出ている間って、まだ、そのレコードの入力は完了してないことになるので、たとえばチェックマークをつけたとしても、クエリの抽出結果として出てこないんですよ。また、チェックマークをはずしたての場合も、まだはずしたことになってなくて、印刷されて出てきてしまいます。

フォームをいったん閉じたり、他のレコードをクリックしたりすれば、エンピツマークはなくなるんですが・・・。
そんなのいちいちやってられないじゃないですか。。。。
だから、コマンドボタンをクリックする前に、何も意識しなくても、エンピツマークが消えてくれるようにしたいなぁと思うんです。

エンピツマークが消えるということは、「レコードの保存」という操作が行われたことになるんですが、これは、メニューバーの「レコード」というところにあるメニューによって行われます。
そこでこれを、レポートの印刷をする直前にやっとこう、というわけです。



では、さっきのマクロをデザイン画面で開いて・・・。

1行目にカーソルがある状態で、ツールバーの「行の挿入」ボタンをクリックします。

あいたところに「コマンドの実行」というアクションを入れます。
「アクションの引数」のところに、コマンドとして「レコードの保存」というやつを選びます。

これ、みんな、メニューバーとかから実行するようになってる命令ばっかりが並んでるんですよね。
結構いろんなことができるアクションなので、他のコマンドについてもいろいろと見ておくといいかもしれませんね。




え?
一番下の、空白欄は何かって???

んもーーーー!!!

これは、このフォームから新規にデータ入力をするときに使う「新規入力行」です。
このフォームからは、新規にレコード入力なんかしないから、これ、非表示にしたい、ということでしたら・・・。

このフォームのプロパティの「追加の許可」プロパティを「いいえ」にすればOKです。
これで、新規追加ができないフォームになりますよ。



(オシマイ)