motogp fan

motogp ファンによる、雑ブログ、ガジェットネタも

Access 入門 第4回 イベント出欠管理作成 (リレーションシップ)

テーブルの関連図設定(参照整合性)

グループテーブルとそれを参照する会員テーブルが完成しました。
ではテーブルの関連性を設定します。

f:id:motagp:20150612074529j:plain

データーベースタグを開き、リレーションシップをクリック。

f:id:motagp:20150612074528j:plain

テーブルの表示をクリックして、グループテーブルと会員テーブルを追加。

f:id:motagp:20150612074527j:plain

f:id:motagp:20150612074526j:plain

表示したテーブルの会員:グループ番号から、グループ:グループ番号に、ドラッグして線を結びます。

指定が成功すると、リレーションシップの子画面を表示。

 

f:id:motagp:20150612074525j:plain

右にグループ:左に会員 一対多と自動で表示。
グループの1行に対して、会員は複数このグループに所属する事を宣言。

参照整合性は親がテーブル(一側)が変化したら何しますか?の宣言です。
・フィールドの連鎖更新:グループ番号が変わったら自動で会員側も更新します。
・レコードの連鎖削除:グループ行を削除したら、これを利用していた会員の行も自動で削除します。(ここでは使いません)

指定が終わったら作成で保存。

f:id:motagp:20150612074524j:plain

閉じるで保存。

 

参照整合性の結果

では、リレーションシップを使う事で何が便利になったのでしょうか。

間違い入力の禁止

 会員入力で、グループ番号にグループに存在しない番号を入力すると。f:id:motagp:20150612074523j:plain

 改行すると、グループに存在しなよエラーが表示、行移動できなくなります。

グループ番号の変更

もしグループ番号を変更したくなった場合、グループテーブルを開き、変更したい行のグループ番号を変更するだけで、会員で使っている行が自動で更新されます。

f:id:motagp:20150612074521j:plain

例ではチームBを20番に変更。

f:id:motagp:20150612074520j:plain

 2行目のチームBが自動で変わりました。

グループテーブルの、主キー内容を変更する事は無いと思われますが、例えばメールアドレス等を主キーにした管理テーブルを作った場合、アドレスの変更が予想されます。

よく使うのが、親子関係のテーブルで、請求書など表題+合計額に、複数の明細情報を持つ2個のテーブルを利用する時です。

関連データの自動表示

グループテーブルを開くと行の左端に[+]マークが追加されています。

f:id:motagp:20150612074522j:plain

これをクリックすると、使っている会員テーブルが下に表示できます。
べんり~~と言いたい所ですが、私はこの機能で得した事はありません。

 

 以上 次回に続く

 

motagp.hatenablog.com

motagp.hatenablog.com

 



 

◆ITのプロ集団(web運行管理)