• 締切済み

ACCESSの参照整合性について

ACCESSの勉強を始めたのですが・・・。 ACCESSでは、参照整合性を設定すると 住所や名前が変わったときにマスターを変更すると全てが変更されるようですが、 前の住所や旧姓もそのまま残し、前のお名前での利用履歴なども残すことはできないのでしょうか? どうぞ、よろしくお願いいたします。

みんなの回答

noname#182251
noname#182251
回答No.2

参照整合性の意味を誤解または「判っていない」ようです。 参照整合性は、例えば「キー」となるフィールドに誤ったデータを入れ、それでリレーションを取ったあと、正しい値に修正しても、リーれーションが担保されるための機能です。 従って「前の住所や旧姓もそのまま残し、前のお名前での利用履歴なども残す」ためには、それに適したDBの設計をする必要があります参照整合性があってもなくても、直接は関係ありません。

全文を見る
すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

履歴というなら、変更時の名前、住所をそのまま残すことは当然 ですね。よって、こういうフィールドに参照整合性を設定する ことは間違いなのです。 メイン情報のテーブルで現在情報を保持(参照整合があっても可)し、 履歴テーブルには変更契機となった情報(参照整合は不可)を蓄積 するというような構成も考えて良いのでは?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Accessの参照整合性について

    アクセスでリレーションシップをはると参照整合性にチェックするボックスがありますよね。 以下の選択の組み合わせが考えられると思うのですが、 1.参照整合性にチェックしない場合 2.参照整合性のみチェックした場合 3.参照整合性と連鎖更新にチェックした場合 4.参照整合性と連鎖更新と連鎖削除にチェックした場合 一(マスタ)対多のリレーションを張ったとき、以下のように理解しています。 2.のとき マスタにあるものしか登録できない。また、マスタは他のテーブルにリレーションを張っている場合、削除も編集もできない。 3.のとき マスタにあるものしか登録できない。またマスタで更新をかけると、他のテーブルのレコードも更新がかかる。また、マスタは他のテーブルにリレーションを張っている場合、削除はできない。 4.のとき マスタにあるものしか登録できない。またマスタで更新、削除を行なうと他のテーブルのレコードも更新、削除がかかる。 では1.のときってリレーションシップは張れるのですが、何の意味があるのでしょうか?

  • Access 参照整合性について

    一対多のリレーションシップで参照整合性の設定ができないし、1も∞も表示されず結合線のみです。一側のファイルは他のアクセスで作成したものをリンクしています。リンクファイルを使用していると参照整合性は設定できないですか?

  • リレーション?参照整合性の謎?

    Ac2000です。 「T_メンバー一覧」(テーブル) ・ID ・名前 ・所属 「T_マスタ」(テーブル) ・ID ・名前 ・所属 ・備考 とします。 それぞれからフォームを作成し、「F_マスタ」のフォーム上で IDはコンボボックスとし、ここでIDを指定すれば 名前と所属が入るようになっています。 「T_メンバー一覧」に変更があった場合(所属が変わるなど)に、 「T_マスタ」も自動で変更されるようにしたいのです。 T_マスタにデータが入っている場合です。(1件のみ) リレーションをはり、ID同士で設定しました。 「参照整合性」にチェックをし作成しようとすると、 「T_マスタ」テーブルのデータが参照整合性の規則に違反しています。 たとえば、ある社員に関連するレコードがリレーションテーブルにあるときに、 この社員に関連するレコードが主テーブルにありません。 ・・・・ となってしまうのです。 T_マスタにデータが入っておらず、上のリレーションが成功したあとに、 入力をしようと、F_マスタを開き、IDを選択して、 フォームを閉じようとすると、 「テーブル 'T_メンバー一覧'にリレーションシップが設定されたレコードが必要なので、 レコードの追加や変更は行うことはできません。 となります。 この2点を解決する回避策を教えてください。

  • このリレーションシップを作成して、参照整合性を設定

     Access2007で、このリレーションシップを作成して、参照整合性を設定できません。   手っ取り早いので、問題にAccessデータが以下のURLからとれるようにしました。  http://homepage3.nifty.com/mtaiyo/sanseyou.accdb  以上Accessのsanseyou.accdbファイルを元にして、 以下の設定項目を実行してください。    テーブル「T得意先マスター」とテーブル「T売上げデータ」の間にリレーションシップを設定します。    「T得意先マスター」の「得意先CD」を「T売上データ」の「得意先CD」までドラッグします。  ≪参照整合性≫のにチェック マーク記号を入れます。 ≪作成≫をクリックする。・・と以下のエラー表示がでて先に進みません。 「 ’T売り上げデータテーブルのデータが参照整合性の規則に違反しています。  たとえば、ある社員に関する売るレコードがリネーション テーブルにあるときに、この社員に関する レコードが主テーブルにありません。    リレーション テーブルのすべてのレコードのデータについていて、関連するレコードが主テーブルにあるようにしてください。  参照整合性の規則に従わないでリレーションシップを作成するときは、[参照整合性]チェックボックスを オフにしてください。」  FOM出版 SETP1 「リレーションシップを設定する」  の項目の、別な設定でも、同じエラーがでたので、最初からエクセルを再イポートしたら無くなりました。   次の設定にかかったところ又でたので、そもそもどこをどうすれば回避できますか!?  以上宜しくお願いいたします。  

  • Access フォームの参照先について

    こんにちは!いつもこのサイトにはお世話になっています。 今日お聞きしたいことはタイトルにも簡単に書いたのですが、 例えば「社員マスタ」というテーブルを元に「社員マスタ」という 名前のフォームを作成したとします。 その後何らかの事情でテーブル名が「社員マスタ」から「社員名簿」 へ変わってしまった場合、もちろんフォームから「社員マスタ」を開こう としても開きません。 ただ「社員マスタ」フォームには参照先のテーブルの項目にあわせて 幅を調整したり、検索機能を付けたりしているので、 参照するテーブル名が変わっただけでまたフォームを1から作成する のはどうも効率が悪くてしかたありません。 フォームの内容はそのままに参照するテーブルの名前だけを変更する 方法がありましたらご教授お願いします。 ※「社員マスタ」テーブルと「社員名簿」テーブルは名前が変わった だけで、内容は全く変わりません。

  • Access VBA 参照設定とは・・?

    Access初心者です。2003を使用しています。 ライブラリの参照設定(この表現でわかるでしょうか?)で参照するライブラリを増やし、モジュールを作成しました。このモジュールを含むツールは問題なく私のPCでは動いていましたが、ファイルサーバに投入し他のPCで実行させると、「・・・参照する切断された参照が含まれています。」とエラーがでてしまいます。 エラーを一旦閉じ、参照設定を見ると「(非参照)・・・・」にチェックが入っていました。このチェックを外すと問題なく動きます。チェックを外す作業を他の人にやってもらったので、ライブラリ名までわかりませんが、ツール作成時に「Microsoft ActiveX Data Object 2.1 Library」を参照可能にしました。 以下が初心者な質問ですがご教授いただきたい部分です。 ライブラリの参照設定は、インストールされているAccessに設定されるのでしょうか?それとも、作成したファイル毎の設定になるのでしょうか?前述の場合でしたら、ツールを配付した先で設定を変更してもらわねばなりません。後述でしたらモジュールをインポートした際に参照設定を変更しなければなりません。 また、参照設定の変更はVBAを用いて変更可能でしょうか?(フォームボタンから参照のON・OFF) へたくそな文章で伝わり難いとは思いますが、どなたかご教授ねがいます。

  • [Access2000]リレーションが設定されたレコードが必要

    ACCESS2000 1対1でリレーションを設定しています。 T_マスター T_内容 ID→ID 参照整合性ON 連鎖OFF 結合の種類「2」 新しいレコードをT_マスターに追加しようと すると、 「リレーションが設定されたレコードが必要」 とエラーメッセージが出ます。 T_マスターにはレコードが追加されるようなんですが、T_内容にはレコードが追加されないようで そのためエラーが発生するようです。 このエラーを解消するためにはどのような リレーションの設定をすればよろしいでしょうか?

  • PC内のネットワーク経由での参照方法

    複数の人がPCを利用しています。 仕事の内容に応じて5つのユーザーが設定されていますがパスワードの設定はされていません。 各ユーザーのデスクトップに書類のひな形を置いているフォルダがあります。(マスターフォルダ) 作業用フォルダにコピーしてから使うように指示しているのですが、たまにコピーせず移動させてそのまま書き込んでしまい 困ることがあります。 そこで、共有フォルダに入れて「変更不可」の設定にしたのですが、自PC内からのアクセスなら意味がありません。 そこで、自分のPC内の共有フォルダをネットワーク経由で参照して、デスクトップにショートカットを作りました。(\\mypc\共有) ところが、一度アクセスするとリンク先が勝手に書き換わってしまいます。(d:\共有) この大きなお世話機能を止めることはできないのでしょうか? また、ほかの方法で削除禁止にする方法はないでしょうか? 但し、マスターフォルダから出した後は変更可、削除可にしたい。

  • メモリ整合性をオフにできません

     本日新しいパソコンにスーパーセキュリティを導入し、利用を開始しました。オーディオインターフェースをUSBで接続しようとしましたが、「このデバイスにドライバーを読み込めません」とメッセージが出ました。マイクロソフトのサポートで調べたところ、解決策としてメモリ整合性をオフにすることが書いてありましたが、「この設定は管理者によって管理されています」とでて、変更できません。管理者アカウントでログインしています。ネットでさらに調べたところ、どうやらセキュリティソフト側で変更できないように設定している可能性があることがわかりました。  どこの設定を変更すればメモリ整合性をオフにすることができるようになるでしょうか。わかりにくい文章になってしまいましたが、お答えいただけるとさいわいです。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • 参照の設定について教えて下さい。

    Visual BasicからAccessのデータベースを操作(検索、登録、削除、変更) をする場合に参照の設定という設定をしてあげなくてはならないとわかったのですが どれを設定してあげればよいのかわかりません 参照の設定について教えて下さい。