<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000超入門部屋--見積書を作る
   1 > 2 > 3 > 4 > 5 > 6 > 7 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 16 



ふう・・・。なんとかカッコがついてきたかな。
わたしのはこんな感じになりました。↓

レポートのデザインって、ほんとに重労働です。
用紙の大きさとか考慮しないといけないし、実際に印刷してみると、文字の大きさのイメージとか微妙に違って感じたりしますからね。
テスト用のデータをあらかじめ入れておいて、何枚か印刷してみながら進めていった方がよいでしょう。

プレビューしてみると・・・。

ページフッターではないので、見積の明細が終わったところですぐ備考や値引額が印刷されます。なので、3行くらいだとなんだか寸詰まりですね。
多分・・・ここまでくると、「10行なら10行、行数を固定させて、罫線だけでも引きたい」って、思ったり・・・なさるんじゃないでしょうか。

これってすごく難しいことはご存知ですよね。
なぜ難しいのかも、理解いただいてますよね???

MS-Accessのフォームやレポートは、基本的に「基になるテーブルやクエリのデータを出力するための枠」に過ぎません。表形式のレポートは、1行分のデザインしかしないですよね。もとのテーブルに3件レコードがある場合は、レポートの詳細セクションを3回繰り返す、というイメージになります。つまり、普通に考えたら、「3レコードしかないのに10行分の印刷をする」なんてことは、できないわけです。

もし、レポートの構造にお詳しい方なら、レコードがなくても空回しする方法があります。これをうまくレポートに組み込んでいけば、可能でしょう。
ただし、レポートの構造にあまりお詳しくない方にはお勧めできません。そんなに難しくはないですが、レポートのデザインが複雑になればなるほど手間がかかりますから、その辺の工数が目算できる方でないと、お勧めできる方法とはいえないかもしれませんね。

もし、どうしても、「見積書」というものの体裁上、「10行分の線が引いてあって、10行分行番号が打ってある状態で、その中に商品や単価を入力していきたい・・・」みたいな感じの仕組みを作らざるを得ないのであれば・・・のお話ですが・・・繰り返しになっちゃいますけども、リレーショナルデータベースの世界で、レポートだろうがフォームだろうが「データはないけど10行分、空の行をあける」みたいな考え方は持ってないので、それなりに「???」な方法をとらなくちゃならないわけです。それを十分に踏まえていただいた上で、作ってみましょう。

逆に考えちゃえば、もとのテーブル・・・今回の場合、W見積明細テーブルの中に、10行分のレコードがあれば、10行分印刷されるんですよね。

こんな風に↓、データはないけど見積番号と行番号だけ入力しておいて・・・・・・・。
(どっちも主キーだし、W見積テーブルと結びつかなくなっちゃいますから見積番号も必要ですよ)、

レポートの方で、何もなくても「ゼロ」って出ちゃう可能性もありますから、各テキストボックスの書式プロパティで、ゼロのときは空欄にする、みたいな書式の設定をします。

これって、Excelとかもおなじだからご存知の方も多いと思いますけども、

 正の数の書式;負の数の書式;ゼロのときの書式;Nullの時の書式

と、4つの書式パターンを半角セミコロンで区切って設定できるのです。

たとえば、
   #,##0;;" "
としておくと、(" "は入力しても消えて見えなくなっちゃうかもしれませんが)ゼロのとき" "という書式が適用されます。つまり「ブランク」ってことですかね。
負の数、Nullの場合も必要であれば、細かく指定していくことができます。

印刷物だから、これで十分じゃないかと思います。

で、見てみると?

10行分出ますよね。あたりまえですけども・・・。
こういう状態を作ってしまおうと思うんです。そう。印刷する前に、あるいは、見積書を入力する前に、W見積明細テーブルに、10行なら10行分、先に空レコードを作ってしまおうじゃないか、というわけなんです。


では、やってみましょうか。
手っ取り早いのは、ダミーのテーブルをひとつ用意して、そいつを使って追加クエリを使う方法じゃないかと思います。

主キーとかは、別になくてもいいんじゃないかと思うんですけど、まあ、こんな感じの、数値型のフィールドひとつだけのテーブルを作ってください。
名前はー・・ダミーとか、そんなのでいいです。

たとえば、↓必ず「15行」出したいのなら、15まで入力しておきます。

とりあえず15で試してみましょうかね。