<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
  Ac2002--VBAの沼 > データがなくても罫線を10行なら10行分引く見積書
   1 2



では・・・。
「見積書」を例題にして、前のページのおさらいをしてみましょう。
似たようなテーブルを作って、トライしてみてください。
めんどくさい・・・という人は・・・サンプルdbをご用意しましたので、コレ使ってください・・・。
このページで解説している内容まで、作業してあります。
コードを書くだけの状態になってますので、このページの開設をいちおうひととおり確認いただいた後、次ページの解説から作業を進めてみてください。

これから使用するMDBの内容の解説です。
VBAとは特に関係ないですけれど、どういう前提で動くコードなのか、いちおう確認しておいてください。



まず、テーブルから・・・。全部で5つ使います。
セオリーどおりの「見積書作成データベース」のためのテーブルです。
まず、顧客、社員、商品に関する情報を入れておくマスターテーブルを用意し、データを入れておきます。
それぞれ、[顧客番号][社員番号][商品マスタ]が主キーです。

見積のデータを入れるテーブルを作ります。[見積番号]が主キーですね。

さらに、1件の見積の中に、どういった商品が含まれるか入力するためのテーブルも作ります。明細、とでも言いますか。

上図のテーブルの、[ID]というフィールドは、は便宜上設けているだけのフィールド(入力した順番にレコードが並ぶようにするため)なので、オートナンバー型にしています。
このテーブルの主キーは[見積番号]と[ID]のふたつです。



このふたつのテーブルを、リレーションシップオブジェクトの中で結びつけ、見積番号1件に対して、複数の見積明細が存在するということを書き記しておきます。

で、見積先の顧客名とか担当者の社員名とかをパパッと出せるように、クエリを作って3つのテーブルを結び付けます。

フィールドグリッドに、
   ★見積テーブルからすべてのフィールドを選び、
   ★顧客マスタから[顧客名][郵便番号][住所][電話番号]を選び、
   ★社員マスタから[社員名]と[部門]を選びます。

こういうクエリの場合、メインとなるテーブル(見積テーブル)からすべてのフィールドを選んで、他の二つからそのほかのフィールドを補おうようにします。

明細の方も同じですね。

こちらではさらに、[数量]と[値段]を掛け算して、[金額]というフィールドも作っておきます。

こんな感じですね↑



このふたつのクエリを使ってサブフォームを作り、テキストボックスの位置や大きさなどを変えたものが、以下のフォームです。

このフォームから入力したレコードは、最終的に[見積テーブル][見積明細テーブル]に貯まります。
貯まったレコードを、「見積書」として印刷したいと思うわけなんですが、この見積書を「10行で改行する」レポートに仕上げてみようかな、というわけです。

基本的には、前のコーナーでお話したとおりです。
ただ、今回は、テーブルのデータ全件まとめて印刷するのではなく、「見積番号ごとに」印刷することになりますよね。
そこのところがちょっと変わります。

まず、土台となるレポートを、レポートウィザードで作りましょう。
あんまり細かいこと申し上げなくてもいいとは思いますが、いちおう・・・。

まず、[Q_見積テーブル]から、全フィールド右側に選びます。

次に、[Q_見積明細テーブル]を選びます。

で、さらに全フィールド、右側に選びます。
これでOK。「次へ」ボタンをクリックします。

このふたつのクエリの基になっているテーブル同士は、リレーションシップの設定をしてあるので、こういう画面が出てきます。

ここのところだけシッカリ作ってあれば、後はまあ、適当というか、デフォルト状態で次へ次へ進んでもなんとかなります。
わたしは、「見積書」っていうレポート名にしました。

こんな感じになりました・・・。はっきりいってこのままでは使いようが・・・。

がんばりましょう。。。



デザインビューに切り替えて、がんばってデザインを整えます。

ページフッターのテキストボックスや罫線は削除して、ページフッターは閉じておいてください。
「見積番号ヘッダー」の部分のテキストボックスやラベルを整理して、見やすく変えておきましょう。
(これが大変なんだけども・・・)

わたしは、こんな感じにしてみました。青いのがラベル、赤いのが罫線(直線)です。
レポートヘッダーにあったものも全部「見積番号ヘッダー」に移動して、文字の大きさや位置を調節しました。
あと、多分ラベルを書き換えたり取り除いたりしないとならないものもあると思うんで・・・。
これは、お好み、というか、用途に合わせて調節してください。

とりあえずいろいろがんばって、こんな感じになりました。↑ふう・・・。
ここで力尽きてはいけません。本番はこれからですよ。



見積書なんですから、見積の金額合計とか、出したいですよね。
そしたらこれは、グループフッターを使うといたしましょう。
今、「見積番号ヘッダー」というのはありますけれど、「見積番号フッター」というのがないですよね。これを出します。
ツールバーの「並べ替え/グループ化」ボタンをクリックしましょう。

グループフッターも「はい」にすると、レポート内に変化が見られると思います。

フッター欄に非連結のテキストボックスを置いて、コントロールソース欄にSum関数を使って合計を出せるようにしてみるといいと思います。

それから、詳細セクションの左端にも、非連結のテキストボックスをひとつ作っておいてください。

ここに「行番号」が入るようにしようと思います。テキストボックスの名前、確認しておいてくださいね。



さらに、詳細セクションの下部分に、改ページコントロールを置きます。
罫線より下、ですよ。
改ページコントロールの名前も、確認しておきましょう。

見積番号が変わったら当然、改ページしてもらわないと困るんですよね。今回の場合・・・。
これがけっこう、見極めが大変なんですけども・・・今回は、「見積番号ヘッダー」のプロパティで、「カレントセクションの前」というやつにしてみてください。多分コレが一番、思ったとおりの改ページになってくれると思います。

それと・・・今回、この作り方でいくと、多分、ヘッダー内にある「見積番号」のテキストボックスの名前が、[Q_見積テーブル.見積番号]ってなってるんじゃないかと思うんです。とっても長い名前のテキストボックスですよね・・・。

これは、詳細セクションにも[見積番号]というテキストボックスができるので(わたしは削除しちゃったんですが)、名前がダブらないように、こうなってます。そこで・・・名前を、短いものに変えておくことをお薦めします。
わたしは、[見積番号]って変えました。



(サンプルMDBは、ここまでの作業はできてます)