| Access実践入門 TOPへ |
| ■ マイクロソフトアクセス、明細データ | |
| 基本のデータに対する明細 データベースでよくある、基本データに対して複数の明細的なデータの取り扱いについて説明します。 よく使われるのは、顧客データに対して、売り上げ明細の履歴を登録する、あるいは、営業明細、メンテナンス明細を登録するといったものです。 サンプルプログラムでは、贈り物をいつ誰に、どんな物を贈ったのかを登録出来るようにしています。 またそのデータの集計印刷もしています。 |
|
| 一覧表 住所録のデータと同じように、一覧表で、入力済みのデータが日付の降順に表示されています。 こういった、日付がキーとなった入力明細では、日付の降順に並んでいるのが、わかりやすいです。 「fo進物一覧表」のデザインを見てください。 [レコードソース]は「qu進物一覧表」です。 「進物日日付」を降順に並び替えたものです。 「fo住所録一覧表」と同じようにできています。 ![]() 次に、「fo進物入力」のデザインを見てください。 これも「fo住所録入力」と同じようにできています。 ![]() 「fo住所録入力」と違う部分だけ見ていきます。 新規登録か、編集入力かの区分は、同じ変数を使っています。 Select Case inpmode Case 0 Me.RecordSource = "qu進物一覧表" Me.削除.Visible = False Case 1 Me.RecordSource = "qu進物編集" Me.削除.Visible = True Me.進物番号.Locked = True End Select 上の Me.進物番号.Locked = True の行は無くてもいいでしょう。[可視]が「いいえ」になっていて、使えませんから。 先程の、住所録入力との最大の違いは、明細的なデータなので、同じ住所録番号のデータに対して複数のデータが入力されます。したがって、住所録番号は、主キーになっていません。 主キーである進物番号は、自動的に付けられます。 一覧表の、一番右に、進物番号の欄がありますが、実際のプログラムでは、幅を小さくして、[可視]を「いいえ」にして、隠してしまった方がいいでしょう。 ここでは、入力チェックは、あまりありません。 住所録番号と日付が正しく入力されていれば、それでOKです。 ここでは日付は西暦で入力することになります。 西暦で入力させる方が処理が簡単です。 [定型入力]のぶぶんも、年度の桁が2桁増えているだけです。 後の項目は、「fo住所録入力」を参照してください。 |
|
| 印刷 集計クエリーを使ったレポートを作っていますので、ここで見ておきます。 「re進物合計」のデザインを見てください。 ![]() レポートフッターに合計欄があります。 レコードソースの「qu進物合計印刷」に集計クエリーを使っています ![]() 集計クエリーの作成手順を説明します。 まず、必要な項目を下に落とします。 上のメニューから「表示」「集計」で、全ての項目にグループ化というのがデザインの集計の行に入ります。 グループ化というのは、そのデータが同じだったら、1行に集計してくれます。 同じ住所録番号で、集計してくれることになります。 名前もグループ化が付いていますが、同じ住所録番号のデータは、必ず名前も同じです。 カウントは、そのグループに何個データがあるか、数えてくれます。 合計は、そのグループの金額の合計をしてくれます。 Where 条件は、集計に関係ない、抽出条件です、次のように書きます。 Between [Forms]![fo進物合計印刷]![日付始め] And [Forms]![fo進物合計印刷]![日付終わり] ここで、印刷指定画面を見ておきます。 ![]() ここでは、日付の範囲を指定してもらいますが、データの入力で使ったような、日付のチェックをしています。 クエリーを保存すると、フィールドの表題が、自動的に、「○○のカウント」とかに書き変わっています。そのまま使いましょう。 では、レポートのデザインに戻ってください。 レポートフッターにある、合計の欄を見てください。 レコードソースが、次のようになっています。 =Sum([進物番号のカウント]) =Sum([進物金額の合計]) 明細の項目名に"=Sum()"が付いたものです。 レポートフッターにこのように書くとレポートで合計計算ができます。 (注意)ページフッターに付けても合計計算はしてくれません。 |
|