目次
ACCESSの主キーでリレーションを設定する
こんにちは。伊川(@naonaoke)です。
今回は、ACCESSのリレーションの設定について説明します。
このブログはこんな人にお勧めです。
・ACCESSの基本設定であるリレーションシップが、理解できない人
ACCESSがデータ管理において、Excelと異なる点
Excelは、データを参照する場合は、VLOOKUP関数や、INDEX関数、MATCH関数を組合わせて参照します。
ACCESSはそんなことはしません。
テーブルとテーブルをつなぐだけです。
すべてのテーブルが、MYナンバーという主キーでつながれている状態です。
当然ですが、MYナンバーは、1億2,000万分の1、つまり、国民、一人一人に与えられる唯一のキーなのです。
前回、説明したとおり、重複も、空白も許されないキーなのです。
この主キーで、テーブルとテーブルをつなぐことを、リレーションシップといいます。
赤丸で囲まれた【1】は、すべてのテーブルについています。
リレーションを組むとなぜ、便利なのか?
リレーションを組むことで、MYナンバーで検索するだけで、すべての情報を参照できるからです。
各テーブルの情報は、上の図のようになっています。
すべてが、赤枠のMYナンバーでつながれています。
MYナンバーで検索すると、3つのテーブルの情報が芋づる式で引っ張ってきます。
レコードの追加もできない
社保台帳にMYナンバーを追加しようとしても、エラーが出ます。
向かって左側に【+】のマークがついています。
これは、リレーションが設定されているという意味です。
【+】のマークをクリックして、【-】に変更すると、リレーションが設定されているテーブルを確認することができます。
【-】の下に表示されているテーブルは、MT_MYナンバーのテーブルです。
エラーは表示されて当然
人間が出生したら、真っ先にMYナンバーに割り振られるはずです。
MYナンバーが割り振られていないということは、まだ、生存していないということです。
生存しなければ、社保台帳にも、住民台帳にも掲載されるわけがありません。
ACCESSは、1対1のリレーションの設定をするだけで、レコードさえも追加させないのです。
主キーは、ACCESSにおいては、メチャクチャ重要な役割をはたしているのです。
Aさんが、突然、上司から命令された
情報がリアルタイムで反映することと言われました。
Aさんは、どうしたらいいでしょうか?
テーブルをリンクさせる
手順 その1
【外部データ】⇒【新しいデータソース】⇒【データベース】⇒【Access】を選択します。
手順 その2
リンクさせたいテーブルがある場所を選択しあます。
この場合は、【C:\Users\Naoki\Documents\Database2.accdb】になります。
【リンクテーブルを作成して、ソースデータにリンクする】を選択します。
手順 その3
各テーブルを選択します。
この場合は、すべてのテーブルを選択します。
テーブルの右側に矢印がつきました。
これで、テーブルがリンクされたので、リアルタイムで情報が反映されます。
管理職だけがログインできるフォルダにACCESSを保存すれば、完成です。
このようにテーブルをリンクさせることもカンタンにできます。
各省庁のデータベースは、ネットワークでリンクしていると思います。
まとめ
このように主キーを理解すると、データベースの仕組みが理解できたような気になりませんか?
もちろん、主キーだけで、すべてを理解できるわけではありません。
しかし、これが、私は、基本中の基本だと思っています。
そして、この主キーがわかると、オートルックアップクエリが利用できるというオマケがついてきます。
そのオマケはすでに説明済なのですが、次回に、もう一度説明します。
関連記事
http://keiyu.xyz/2019/09/18/access%e3%81%ae%e5%9f%ba%e6%9c%ac%e6%8a%80%e3%80%80%e3%82%aa%e3%83%bc%e3%83%88%e3%83%ab%e3%83%83%e3%82%af%e3%82%a2%e3%83%83%e3%83%97%e3%82%af%e3%82%a8%e3%83%aa%e3%81%af%e8%b6%85%e4%be%bf%e5%88%a9/
http://keiyu.xyz/2019/09/19/vlookup%e9%96%a2%e6%95%b0%e3%81%a7%e5%b7%a6%e5%81%b4%e3%81%8c%e6%a4%9c%e7%b4%a2%e3%81%a7%e3%81%8d%e3%81%aa%e3%81%84%e3%81%a8%e3%81%8d%e3%81%af%e3%80%81index-match%e9%96%a2%e6%95%b0%e3%82%92%e4%bd%bf/