スポンサードリンク



Access 伝票と明細の大事な関係について。

実は前回までに作成した Access の販売伝票では、まだ十分ではありません。伝票を削除したときに、関連する明細が残ってしまうという問題があります。まずは問題点を実際に確認してみましょう。

その後に解決方法について解説します。Access はとても操作性に優れたデータベースなので、複雑そうな処理も簡単に設定できます。


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


【2】オブジェクトで「フォーム」を選択します。

access-query483.gif


【3】フォーム「F03Slip」を選択して、「開く」をクリックします。

access-query484.gif


【4】伝票を新規作成します。「*」の付いた移動ボタンをクリックします。

access-query485.gif


【5】新規入力画面が表示されました。

access-query486.gif


【6】以下の図のように、データを入力してください。

access-query487.gif

*明細にも2件以上入力してください。


【7】SLIP_CD と DETAILS_CD の番号を、紙にメモしておいてください。

access-query488.gif

この段階ではテーブル T07Slip、T08Details には、入力したデータが保存されています。


それでは今入力した伝票を削除してみましょう。

【8】伝票のレコードセレクタをクリックします。

access-query489.gif

*明細のほうではないので気をつけてください。


【9】「Deleteキー」を押すと、削除のメッセージが表示されるので、「はい」ボタンをクリックします。

access-query490.gif


【10】伝票が削除されたら、フォームを閉じてください。

access-query491.gif

*一見伝票と同時に明細も削除されたように見えますが・・・


【11】オブジェクトで「テーブル」を選択します。

access-query492.gif


【12】「T07Slip」を選択し、「開く」ボタンをクリックします。

access-query493.gif


【13】伝票のほうはテーブルからデータが削除されています。

access-query494.gif

*メモしておいた SLIP_CD は無いはずです。


【14】しかし「T08Details」を開くと、データが残っています。

access-query495.gif

原因は伝票(T07Slip)と明細(T08Details)が、関連付けられていないからです。


【15】「T08Details」に残ったデータは、手動で削除してください。

access-query496.gif

テーブルのレコードセレクタで、削除したいレコードを選択し、「Deleteキー」を押すと削除できます。


Access では伝票を削除したときに、関連する明細を一緒に削除するためには、二つのテーブルにリレーションシップ(関係、関連)を設定する必要があります。

明細にデータが残っていても、フォーム上では表示されないため、影響がないように思うかもしれません。しかし明細を基にクエリで集計したりすると問題が出ますので、ちゃんと削除するようにします。

リレーションシップについては、以前にも取り上げましたが、復習を兼ねて次回に詳しく解説します。

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


スポンサードリンク






Microsoft Access初心者入門講座 TOPへ