Please visit our sponsors.
スポンサーも訪れて下さい

トップページ ★MSアクセスウエッブカレッジサンプル(ダウンロードする)|業務統合4in1小さな会社用『感嘆!』  

■★■MSアクセスマクロ・TOPICS■★■

10.・・・リレーショナルの設定入門4

リレーションシップの設定で、もう少し説明を加えてみますと。「1対1の設定」と「1対多の設定」があります。


文章から内容は大体わかるとお思いますが、そう、貴方の想像したとおりでしょう。多分。

では、1対1の設定のポイントは何でしょう。リレーションシップ設定は、対象の2つのテーブルの各フイルドの設定がありますよね。数値型でもテキスト型でも同じですが、対象テーブルの対象フイルドのプロパテイーで、indexの設定欄があります。ここを「重複しない」に設定することで、1対1のリレーションシップが設定可能となります。設定するフイルドは、同じように「重複なし」に設定してから。リレーションシップ画面で1対1にすることになります。

「1対1の事例」
(私と奥さんの関係)
私テーブルの番号と私テーブルの配偶者番号は、重複なしになります。もちろん、配偶者(奥さんテーブルの番号は重複なしです。これは、希望的には、重複ありに設定したいところですが、日本の」現状では、1対1しか認められていません。
残念ですが。え!何が。

(A製品の部品の関係)
これは、普遍的なものではありませんで、ある会社の事例です。Aという製品がありまして。この製品は、10個の部品で構成されています。各部品は、A製品用に、特別仕様の部品がつきます。

「1対1」設定をすると、入力時リレーションシップのチェックがかかりますから、間違って入力すると、エラーが発生するので、正確な入力ができることになりますが、もし、「1対1」の関係が崩れた場合の入力は拒否されます。作成当初はいのですが、時間がたって、会社の環境が変わることがよくあって、この「1対1」の関係以外の製品が出てきたりして、困惑することが起きます。実務的には、特に「1対1」の設定が絶対条件でない場合、この関係は作りません。柔軟なシステムも大事なポイントですから。

「1対多」の設定
 実務的には、ほとんどこの設定になることが多いです。多分。決め付けると「そんなことはない」などと固いひとからメールで脅かされたりしますので。事例の生徒スタテーブルと教師スタテーブルの関係で、生徒スタテーブルの教師フイルドは「重複あり」に設定する必要があります。このとき注意は、生徒スタテーブルの生徒番号と教師スタテーブルの」教師番号は、それぞれ「重複なし」の設定がされているはずです。

 「1対多」のリレーションシップの設定は、一つのテーブルでなく2つのテーブルの関係を示すのですが。これわかりますか、わかりますよね。生徒スタテーブルを主テーブルで教師スタテーブルをリレーションテーブル(従テーブル)と呼び分けるといいと思います。主テーブルから見て、教師番号フイルドは、「重複あり」になるということです。


生徒が、40人いれば、40レコードに同じ教師番号が入ることに生ります。

 どうしても、リレーションシップ設定で、「1対多」の線が引けないときの、チェックポイントとしては、まず何か勘違いをしているわけです。機械は正直で、今まで何回もどうして、作成できないのだろうと悩んだ時が、結構ありますが、全部自分の,勘違いでした。

 まず、データが入っている状態で設定しようとする場合、現在あるデータの関係が「1対多」になっていなければ駄目です。だから、もしデータが入っている場合、バックアップをとって、一度、データを削除してから、リレーションシップ「1対多」を設定してください。たいてい,パスします。でも駄目なときは、フイルドの確認「重複なし」と有りの関係が大丈夫」ですか?

リレーションシップの設定を変更するときも、簡単にいかないことがあります。設定されているので、「関係を削除できません」とエラーメッセージが出たとき。現在のテーブルをコピーしておきます。テーブルの名前を変えます。リレーションシップの設定を削除します。新しい関係を作って、基のデータを移します。これは実際に起こらないとわかりにくいので、一度設定したものをあとで変更するとき何かエラーメッセージがでて、やり方があることだけを覚えておいてください。


★サンプルのダウンロード
【今までの参考ファイル】


お得で便利なNTTネットワークサービス!クリックしてみて!


メール:macro@mscn.net

| トップ4in1曙司法書士システム公益法人
|弁理士用大丈夫弁護士用大丈夫ARA ! |
| マクロ研究会MSアクセス入門マガジン |マクロ会議室ダウンロード

e="-1">v