Access講座 基礎の基礎 第五回 ~ テーブル同士を紐づけしよう ~

Access

こんにちは、じじグラマーのカン太です。
50歳目前、日々増える脂肪に怯えながら週末プログラマーをしています。

初心者のためのAccess講座の五回目です。

今回はクエリとフォームを連動させて、フォームで入力した値をクエリの抽出条件にする方法を紹介します。

デーブルの種類

システムで扱うテーブルには、「マスタデータ」「トランザクションデータ」と呼ばれるものがあります。今はなんとなく、「そんなものがあるのか」という理解で十分です。

マスタデータ

マスタデータとは、基礎となるデータです。システムを使用する際、初めから必要となるデータと言ってもかまいません。
例えば、社員の一覧や取引先の一覧などです。頻繁に更新されたり追加されたりするデータではなく、主に参照するために使用されます

トランザクションデータ

トランザクションデータとは、システムを使用することで蓄積されていくデータです。日々ユーザーが登録・修正して作り上げていくデータです。
例えば、受注のデータや勤怠のデータなどです。日々追加・更新されて、システムを使用すればどんどん増えていくデータです

なぜ種類を分けるのか?

種類を分ける理由は、データベースの設計をする上で重要となるためです
データの件数、更新頻度、更新項目・・などがデータベースを設計する上で必要となります。今はまだ覚える必要はありませんが、今後データベースの設計をする際には必要となることは頭に入れておいてください。

コードと名称

一般的に、トランザクションデータには「社員名」や「お客様名」などの名称は設定しません。コードのみを登録し、参照する際に「社員マスタ」や「顧客マスタ」などから名称を取得することになります。

こうすることで、二重に名称を登録・管理する必要がなくなります。また、名称が変更された場合、マスタのみ変更すればトランザクション側は変更する必要がありません。

例えば、取引先の会社名が変更になった場合を想像してみてください。トランザクションに名称をもっていたなら、全てのデータを変更する必要があります。通常、受注トランザクションとして登録したデータは、売上や請求のデータに引き継がれます。となると複数のテーブルにあるデータの全てを変更する作業が必要になります。コードのみを登録している場合であれば、マスタデータの1件を変更するだけ済みますね。

それでは、前回まで使用していたAccessのサンプルデータベースに「勤怠トラン」を追加してみましょう。

作成メニューの「テーブルデザイン」をクリックしてください

次に、「社員コード」「勤怠年月」「出勤日数」を「フィールド名」欄に入力してください。出勤日数の行の「データ型」は「数値型」を選択してください

閉じるときに「勤怠トラン」と名前を付けて保存します。(主キーについて聞かれますが、設定してもしなくてもかまいません。)

クエリで紐づけ

では、実際に作成した「社員マスタ」の社員コードと、「勤怠トラン」の社員コードを紐づけして、勤怠トランのデータに社員名を付与した形で表示してみましょう。

サンプルデータの登録

データを何件か登録してみましょう
左欄の「勤怠トラン」をダブルクリックするとデータ入力モードになります。
サンプルのように、社員マスタに登録しているコードと同じコードを登録してください。

クエリの作成

作成メニューの「クエリデザイン」をクリックしてください。

「テーブルの表示」という画面が出ますので、「勤怠トラン」「社員マスタ」の両方を選択・OKボタンをクリック後、この選択画面を閉じてください

次に「勤怠トラン」と「社員マスタ」の社員コードを紐づけします。
マウスで勤怠トランの社員コードをクリックし、そのままドラッグして社員マスタの社員コードへ移動してください

文字通り双方の社員コードが紐づけされた状態になりました。

続いて、表示する項目を選択しましょう。
下記の順番で項目をダブルクリックしてください

  1. 「勤怠トラン」の勤怠年月
  2. 「勤怠トラン」の社員コード
  3. 「社員マスタ」の姓
  4. 「勤怠トラン」の出勤日数

「デザイン」メニューの実行「!」マークをクリックすると、勤怠トランのデータに社員マスタの「姓」が追加されて出力されます。

最後に「勤怠クエリ」と名前を付けて保存しましょう。

まとめ

今回の講座では、テーブル同士の紐づけ作業を行いました。
だんだんと内容が難しくなってきたかと思いますが、まだコードは書いていませんね。Accessでは、感覚的にマウスで選択するだけでいろんなことができる機能を用意してくれています。初心者に優しいですね

余裕がある方は、今回テーブルを紐づけしたクエリのSQLを覗いてみることをおすすめします。ドラッグだけで二つのテーブルを紐づけしましたが、この作業をコード入力すると・・結構たいへんなことになります。※クエリをダブルクリックし、クエリ名タブの上で右クリック → 「SQLビュー」で表示されます

次回は、照会画面を作成する予定です。

コメント