スポンサードリンク

Access でリレーションシップを設定する方法の復習。

Access で伝票と明細のような、密接な関係にあるデータを扱うときは、気をつけてください。伝票を削除した場合は、関連する明細のレコードも削除する必要があるからです。

でも大丈夫です。 Access にはリレーションシップという、とても便利な機能があるので、簡単に設定できます。実はリレーションシップについては、最初の頃にも取り上げています。

ステップ13・リレーションシップ設定
http://ms-access.seesaa.net/category/744064-1.html

その時とテーブル名なども違いますので、今回は復習を兼ねて、もう一度詳しく説明します。


【1】Accessのファイル「SampleDB020.mdb」を起動します。


【2】ツールバーにある、「リレーションシップ」をクリックします。

access-query497.gif


【3】リレーションシップの設定画面が表示されました。

access-query498.gif


【4】テーブル T07Slip と T08Details を「追加」します。

access-query500.gif


【5】追加したら、テーブルの表示ダイアログボックスは閉じてください。

access-query501.gif


【6】T07Slip と T08Details が追加された状態です。

access-query502.gif


【7】マウスで T07Slip の「SLIP_CD」を、 T08Details の「SLIP_CD」にドラッグ&ドロップします。

access-query512.gif

*逆でも同じです。


【8】リレーションシップのダイアログボックスが表示されるので、「参照整合性」と「レコードの連鎖削除」にチェックを入れて、「作成」ボタンをクリックします。

access-query503.gif


【9】リレーションシップが設定されました。

access-query504.gif

線のマークは伝票が1つに対して、明細が複数あることを表しています。(1対多)


【10】リレーションシップの設定画面を閉じます。

access-query505.gif


【11】保存のメッセージが表示されたら、「はい」ボタンをクリックします。

access-query506.gif


【12】前回と同じ要領で、フォーム「F03Slip」を開き、データを入力します。その時 SLIP_CD と DETAILS_CD をメモしてください。

access-query507.gif


【13】伝票を削除しようとすると、前回とは違うメッセージが表示されます。「はい」ボタンをクリックします。

access-query508.gif


【14】伝票が削除されました。

access-query509.gif

見た目は前回と変わりませんね。


【15】テーブル「T08Details」を開くと、伝票に関連する明細のレコードが、ちゃんと削除されています。

access-query510.gif


【解説】

(1)Access で「レコードの連鎖削除」を使うと、関連するレコードを自動的に削除してくれます。


(2)リレーションシップの設定には、「フィールドの連鎖更新」もあります。これは例えば T07Slip の SLIP_CD の値を変更したときに、 T08Details の SLIP_CD の値も自動的に変更するという機能です。

でも T07Slip の SLIP_CD は、データ型が「オートナンバー」なので、手動で変更することはないため、今回は不要です。


(3)一度作成したリレーションシップは、編集したり、削除することもできます。リレーションシップの設定画面で、マウスで線を右クリックすると、コンテキストメニューが表示されます。

access-query511.gif


【ワンポイント】

リレーションシップを使う以外にも、「削除クエリー」で伝票と明細を削除することもできます。SLIP_CD でレコードを抽出して削除するクエリーを作り、VBAプログラムの中でクエリーを実行すればよいわけです。(削除クエリーは二つ必要)

でもリレーションシップのほうが簡単ですね。


スポンサードリンク






Microsoft Access初心者入門講座 TOPへ