スポンサードリンク

伝票の基になるクエリの作成

これから販売伝票フォームの基(もと)になるクエリを作ります。今までのテーブルやクエリは全て伝票を効率的に入力できるようにするためのものだったのです。

またクエリを基に新しいクエリが作成できることも今回のポイントです。クエリを使うことで、前に設定したことが再利用できます。

各フィールドの意味は以下の通りです。
T07Slip
・SLIP_CD 伝票CD
・SLIP_DATE 販売日
・CST_CD 顧客CD

Q07Customer
・CST_NAME 顧客名
・ZPCT 郵便番号、都道府県名、市町村名、地域名
・ADDRESS 住所(番地、ビル名など)
・SEX 性別


販売伝票フォームの完成イメージを見てみましょう。何だか難しそうですよね。どこから手をつけていいのか迷うかもしれません。複雑なことは分解して考えるのがコツです。

access-query330.gif


まず伝票の上の部分に注目しましょう。

access-query331.gif


下の明細があると難しく感じますので、上だけを抜き出してみました。この部分の基(もと)になるのは、テーブル「T07Slip」です。

access-query302.gif

*SLIP_DATEとCST_CDだけが白いテキストボックスで、他は背景色が灰色で入力できないようになっています。これには理由があります。


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

access-query303.gif

フィールドはSLIP_CD、SLIP_DATE、CST_CDの3つしかありません。しかもSLIP_CDはオートナンバーなので自動で入力されます。ということは入力するのは2つだけです。

先ほど白いテキストボックスは2つしかないことを説明しましたが、入力が必要なのはSLIP_DATEとCST_CDだけだからです。他のものはクエリを使って参照したり、演算フィールドで表示しています。これらはCST_CDを変えると自動的に表示が変わります。

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


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


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

access-query135.gif


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

access-query322.gif


【4】テーブル「T07Slip」を選択し、「追加」ボタンをクリックします。

access-query304.gif


【5】「クエリ」タブに切り替えます。

access-query305.gif


【6】クエリタブで、前に作ったクエリ「Q07Customer」を選択し、「追加」ボタンをクリックします。追加したら「閉じる」ボタンをクリックします。

access-query306.gif


【7】クエリのデザインビューにT07SlipとQ07Customerが追加されました。デザインビューは見やすい大きさに広げてください。

access-query307.gif


【8】CST_CDとCST_CDをマウスでドラッグしてつなげます。

access-query308.gif


【9】画面下(デザイングリッド)にフィールドを追加します。まずT07Slip側から追加します。SLIP_CD、SLIP_DATE、CST_CDの順になるようにしてください。

access-query309.gif

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


【10】次はQ07Customer側からCST_NAME、SEXを追加します。演算フィールドは以下のように入力してください。

ADDRESS2: [ZPCT] & [ADDRESS]

access-query310.gif

*ADDRESSというフィールド名はすでにあるので、違う名前にしなければならないためADDRESS2としました。演算フィールドの名前は自由に付けられます。


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

access-query311.gif

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


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

access-query312.gif


【13】SLIP_CDが「3」のレコードを見ると、CST_CDが「1」になっています。このレコードの顧客名、性別、住所を覚えておいてください。。

access-query314.gif


【14】CST_CDを「2」に変更してみましょう。顧客名、性別、住所が自動で変わります。

access-query313.gif

確認したらCST_CDを「1」に戻してください。


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

access-query327.gif


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

access-query328.gif


【17】クエリQ08Slipで表示したデータと、販売伝票フォームの上をくらべてみてください。クエリの1レコードがフォーム(単票)の1件にあたります。

access-query317.gif

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


【18】実は今回作ったクエリはQ07Customerを使わなくても、全てテーブルから作成できます。その場合は以下のように少し複雑になります。

access-query318.gif

クエリを基にクエリを作ると、基になるクエリ側で設定した演算フィールドなどの設定がそのまま使えるので便利です。ただし多用してクエリの階層が深くなると、どこで何を設定したのかわからなくなるのでほどほどに。


スポンサードリンク






Microsoft Access初心者入門講座 TOPへ