スポンサードリンク

明細の基になるクエリの作成

今回は明細フォームの基(もと)になるクエリを作ります。要領は伝票の時とほとんど同じです。演算フィールドは文字の結合だけでなく、計算をすることもできます。明細では単価と数量から商品ごとの金額を出しています。

また、クエリさえ作れればフォームは簡単に作れるという感じをつかんでください。

各フィールドの意味は以下の通りです。
T08Details
・DETAILS_CD 明細CD
・SLIP_CD 伝票CD
・GOODS_CD 商品CD
・AMOUNT 数量
・MEMO メモ

T06Goods
・GOODS_NAME 商品名
・PRICE 単価


販売伝票フォームの完成イメージです。今回は明細部分に注目しましょう。

access-query319.gif


明細だけを抜き出してみました。この部分の基(もと)になるのは、テーブル「T08Details」です。

access-query320.gif

*GOODS_CD、AMOUNT、MEMOだけが白いテキストボックスで、他は背景色が灰色で入力できないようになっています。他のものはクエリを使って参照したり、演算フィールドで表示しています。


テーブル「T08Details」のデザインビューとデータシートビューをよく見てください。

access-query321.gif

DETAILS_CDはオートナンバーなので自動で入力されます。SLIP_CDはテーブルやクエリでは入力が必要ですが、フォームにすると自動的に入力できます。ということは入力するのは3つだけです。


それでは実際にクエリを作ってみましょう。


【1】Accessのファイル「SampleDB020.mdb」を起動します。
*簡単な操作は省略していきます。


【2】オブジェクトで「クエリ」を選択します。

access-query135.gif


【3】「デザインビューでクエリを作成する」をダブルクリックします。

access-query323.gif


【4】テーブル「T08Details」、「T06Goods」を選択し、「追加」ボタンをクリックします。追加したら閉じます。

access-query324.gif

「Ctrlキー」を押すと同時に選択できます。


【5】クエリのデザインビューにT08DetailsとT06Goodsが追加されました。GOODS_CD同士が結合しています。結合していない場合はドラッグして結合してください。またデザインビューは見やすい大きさに広げてください。

access-query325.gif


【6】画面下(デザイングリッド)にフィールドを追加します。まずT08Details側から追加します。DETAILS_CD、SLIP_CD、GOODS_CDを追加してください。

access-query332.gif

*この時、GOODS_CDをT08Details側から選択していることが重要です。主役はT08Detailsです。T06Goods側のGOODS_CDを使うと後々エラーになります。


【7】次はT06Goods側からGOODS_NAME、PRICEを追加します。

access-query333.gif


【8】T08Details側からAMOUNTを追加します。

access-query334.gif


【9】演算フィールドを以下のように入力してください。

P*A: [PRICE]*[AMOUNT]

・P*A の*は全角で入力します。(文字です)
・[PRICE]*[AMOUNT] の*は半角で入力します。(演算子です)

access-query335.gif


【10】T08Details側からMEMOを追加します。

access-query336.gif


【11】DETAILS_CDの 並べ替え: に「昇順」を設定します。

access-query337.gif

わざわざ昇順を設定するのは、クエリの初期状態では必ずしもDETAILS_CDの順番に並ばないため、明確に指定する必要があるからです。

【12】データシートビューで確認します。

access-query344.gif


【13】作ったクエリが正しく表示されているかの目安は、基になっているテーブルと同じレコード数がクエリで表示されているかです。

access-query343.gif

レコード数が違う場合は、T06GoodsにないGOODS_CDをT08Detailsで入力していたなどの原因です。


【14】SLIP_CDが「3」のレコードを覚えておいてください。

access-query338.gif


【15】デザインビューでSLIP_CDの 抽出条件: に「3」を入力します。

access-query339.gif


【16】データシートビューで確認すると、SLIP_CDが「3」の明細だけが抽出されました。

access-query340.gif

Accessのサブフォームを使うと、わざわざクエリの抽出条件に設定しなくても伝票に対応する明細を自動で表示してくれます。(フォームの機能)


【17】クエリQ09Detailsで表示したデータと、明細フォームの完成イメージをくらべてみてください。

access-query341.gif

くらべるとフォームに必要なフィールドがクエリに全てそろっていることがわかります。ここまでくるとクエリからフォームが簡単に作成できます。


【18】確認したらSLIP_CDの 抽出条件: をクリアしてください。

access-query342.gif


【19】クエリを保存します。クエリ名は「Q09Details」としてください。

access-query326.gif


【20】データベースウィンドウにクエリ「Q09Details」が作成されました。

access-query329.gif


スポンサードリンク






Microsoft Access初心者入門講座 TOPへ