• ベストアンサー

access2002のリレーションシップについて

accessで作ったデータベースで新たにリレーションシップを設定しようとすると、まだ自分では何も設定していないにも関わらず勝手にリレーションシップが設定されていることがあります。 内容としては「MSysAccessStora」というフィールドリスト名で内容はDateCreate/DateUpdate/Id/Name/ParentId/Type とフィールド名が並んでいます。 これは何でしょうか? このデータはFOM出版のMOS対策テキストのデータなのですが、こんな名前のテーブルなどは存在しないのですが・・・ わかる方いらっしゃったらよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

#1のmshr1962です。 システムオブジェクトや隠しオブジェクトの場合、通常リレーションシップは公開されません。 ただし、オブジェクトの表示の状態でリレーションシップ上で 「テーブルの表示」で設定すると表示されます。 多分、FOM出版でこのテーブルの表示を消し忘れたのだと思います。 ですので気になるようなら、テーブルを右クリックして「テーブルを表示しない」にしてください。 非表示のテーブルは「すべてのリレーションシップを表示」にしても 再表示されません。

poo1123
質問者

補足

確かにおっしゃるとおりにすると消せますね。 ただ、不思議な事に自宅のパソコンだとこのリレーションシップがでるのですが、会社のパソコンだと表示されないのです。(MSysAccessStorageのことです) パソコンによって見えたり見えなかったりする事はあるのでしょうか? 何度もすみません・・・

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

MSysで始まるテーブルはAccessのシステムオブジェクトです。 テーブル・クエリ・フォーム・レポート等のリレーションだと思いますが 通常は表示されないはずです。 FOM出版のMOS対策テキストということですので そちらで隠しオブジェクトとして設定されたファイルかもしれません。 「ツール」「オプション」「表示」タブの 「隠しオブジェクト」と「システムオブジェクト」にチェックすればテーブル他が薄く表示されます。 設定をむやみに変えないようにするため、そのような設定になっています。 ご自分で作られたテーブルなどを隠しオブジェクトにする場合は プロパティの「隠しオブジェクト」にチェックしてください。

poo1123
質問者

補足

ありがとうございます!確かにシステムオブジェクトと隠しオブジェクトにチェックを入れると出てきました。 では、リレーションシップウィンドウにこれらのテーブルが表示されるのはなぜなんでしょう・・・

関連するQ&A

  • Accessのリレーションシップ

    Access初心者です。 Access2010でデータベースを作っていて、行き詰ってしまいました。 テーブル1にフィールドABCDEFがあって、Aに主キーが付いています。(Aはテキスト型でフィールドサイズ10です。) テーブル2にはフィールドAGHがあり、Aに主キーが付いてます。(Aはテーブル1と同じです。) テーブル3にも同じくフィールドAIJがあり、Aに主キーが付いています。(Aはテーブル1と同じです。) テーブル1のフィールドAを主テーブルとし、テーブル2・3のフィールドAにリレーションを組んでいます。 この時のリレーションシップで参照整合性と連鎖更新と連鎖削除にチェックを入れ、種類が一対一になりました。 その後、テーブル1でレコードを追加しようとすると、「テーブル'2'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことができません。」と出ます。 これを解決する方法はどうするのか、お教えお願いします。 分かりにくい説明ですいません。

  • Access2013のリレーションシップについて

    Access2013を勉強しています。 リレーションシップについて参考書(2冊)を見ていて疑問を持ったのですが、 二つのテーブルでリレーションシップを定義したいそれぞれのフィールド名は同じ名前だとうまくいかないのでしょうか?参考書では、値は同じ(例えば1、2、3・・・)は同じなのにフィールド名は微妙に違う名前をつけているのですが(例えばテーブルAでは顧客IDでテーブルBでは取引先ID)・・・ 宜しくお願いします。

  • アクセスのリレーションシップについて

    出来上がっているデータベースの更新をしないとけなく、テーブルに追加しようとしたらリレーションシップが設定されているため追加できませんというメッセージがでます。 これは、一度リレーションシップを外して、テーブルに追加して、再度設定すればよろしいのでしょうか? 基本的なことがちょっとわかっていません。 ご存知の方よろしくお願いいたします。

  • アクセス2000のルックアップ設定後のリレーションシップ

    アクセス2000のルックアップを設定後のリレーションシップが自動で作成されることは理解しています。テーブル4つの内1つ(データの流れ的に最後に相当)に設定しました。リレーションシップ線が4つできてしまい、テーブル名がテーブル名に1、2、3と増えてしまいました。邪魔なのでリレーションシップから「テーブルを表示しない」を押し消しても作業してからリレーションシップを確認すると再度表示されてしまいます。また解除(テーブルをデザインモードにして、標準横のルックアップタブを押し、表示コントロールをテキストにする)をしてもリレーションシップの線が消えません。なにか操作方法がおかしいのでしょうか?機会の誤動作でしょうか?

  • Accessのリレーションシップについて

    お世話になります。 2つのテーブルがありその中のフィールドをリレーションシップでつなぎたいと思っています。 しかしフィールドのデータが以下のように違うため接続できません。 何か良い方法はないでしょうか? フィールド1   フィールド2 B00231      B002311 B00289      B002891 H04572      H045721 フィールド2のデータはフィールド1のデータの末尾に1が追加されています。 よろしくお願いいたします。

  • アクセスで、リレーションシップをかけると更新出来ない?

    すみません。以下の事項を教えて下さい。 テーブル名:T_メール本体 (フィールド項目は) ID(主キー) 宛先名 件名 本文 テーブル名:T_宛先リスト (フィールド項目は) 名前 アドレス この2つのテーブルに、宛先名と名前のフィールドをリレーションシップをかけると未定義と出ます。このクエリー:SELECT T_メール本体.宛先名, T_メール本体.件名, T_メール本体.本文 T_宛先リスト.アドレス FROM T_メール本体 LEFT JOIN T_宛先リスト ON T_メール本体.宛先名 = T_宛先リスト.名前; は、ただ表示が出来るだけで、内容の変更更新、追加が出来ないんです。どこかがおかしいんでしょうか? よろしくお願いします。

  • Accessリレーションシップについて

    お世話になります。 Access2010 普段はクエリにて、いくつかのテーブルやクエリを紐づけているのですが リレーションシップの設定は今までやったことがありません。 ネットで調べて、 ・「参照整合性」にチェックを入れることにより、1対多の多側で1側に存在  しないIDで登録しようとするとエラーになる。   →間違ったデータが入力されるのを防ぐ。 ・多側でリレーションシップが設定されているフィールドに値を入力しない  ことは可能。但し、当該フィールドの「値要求」プロパティを"はい"に  した場合は、入力しないとエラーになる。 ・「フィールドの連鎖更新」にチェックを入れると、1側で変更したものが  多側でも自動的に変更される。 ・「レコードの連鎖削除」にチェックを入れると、1側で削除した場合、  多側で該当するデータをもつレコードが自動的に削除される。 上記については実際に試してみて動きを確認しました。 ※上記の認識違いや、もっと大事なことがあればご指摘、ご教示頂けると  幸いです。 今までは、こっちのテーブルで削除したらこっちのテーブルでも削除 みたいなことをやってたので、便利だとは思うのですが。。 以下のテーブルでリレーションシップの設定を行ったとします。 売上テーブル  ID 商品 担当者コード  1 AAAAA  3  2 BBBBB  1  3 AAAAA  1  4 CCCCC  2  5 CCCCC  3 担当者テーブル 担当者コード 担当者名  1     担当者A  2     担当者B  3     担当者C 売上テーブルの担当者コードと、担当者テーブルの 担当者コードでリレーションの設定を行い、「参照整合性」及び 「レコードの連鎖削除」にチェックを入れたとします。 例えばフォーム上にリストボックスを設置し ID 商品 担当者名 を表示し、リストボックス上で選択されたレコードを、削除ボタンを 押したら、そのレコードが削除されるプログラムを作成します。 ※選択されたレコードのIDを取得し削除クエリで削除。 リストボックスでID:5のレコードを選択し、削除ボタンを押した場合 売上テーブルのID:5のレコードを削除しても、担当者テーブルから 担当者コード:3のレコードは削除されない・・という認識でよろしい でしょうか。 ※要するに、1対多の多側で削除されても1側には影響無し。 同様にリストボックスでID:5のレコードを選択し、削除ボタンを押したときに 担当者コード:3を取得し、まずは担当者テーブルで担当者コード:3の レコードを削除すると、併せて売上テーブルのID:1及びID:5が削除 される。 要するに、上記のケースで「レコードの連鎖削除」の設定を行うと 本来削除すべきID:5以外のレコード(ID:1)まで削除されてしまう ことになる?? ※そもそも例がちょっと悪かったかもしれません。。 何が言いたいかというと、「フィールドの連鎖更新」「レコードの 連鎖削除」は、よーく考えて設定しないと意図しないところまで 更新されたり削除されてしまうのかなと。。なので、設定することに よって、プログラムの作りも変わってきてしまうことになるので しょうか。 理解不足で質問自体もモヤモヤしたものになってしまいましたが、 ご教示のほど、宜しくお願い致します。

  • アクセスのリレーションシップとクエリ

    私は、アクセスの初心者です。なので、難しいことはよく分からないのですが、アクセスではある1つのフィールドをキーにしてくっつけたりすることができるじゃないですか?そのキーを設定したりするのはリレーションシップでも、クエリでも同じような感じで行うと思うのですが、その2つの違いはクエリはそれをテーブルとして表示できるのに対して、リレーションシップはただ定義するしかできずテーブルとして表示はできないのでしょうか? あと、クエリとかである条件で抽出したテーブルの1つのフィールドのSUMを出したいのですがどういった条件式を書けばいいのでしょうか? なにぶん、初心者ゆえに質問が分かりにくいと思いますが、どうかよろしくお願いします。

  • リレーションシップ

    VB2005の DataSet.xsdファイルで、 (親テーブル)tokuisaki.tokuisakicodeフィールドと、 (子テーブル)uriage.uriagesakicodeフィールドとで、 リレーションシップを設定しましたが、 (1)制約の選択で「外部キー制約のみ」にすると、 tokuisaki.tokuisakicodeにデータがあるにもかかわらず ForeignKeyConstraintの例外が発生します。 (2)制約の選択で「リレーションシップのみ」にすると、 例外が発生しません。 (1)では、マスタにデータがあるのにどうしてエラーが発生 するかわかりません。  どなたか、わかるかたがいましたら教えてください。

  • Access2000のリレーションシップのエラーについて

    どのくらい説明すればいいのかわからないのですが、アクセス2000でリレーションシップの設定をするときに、 「主テーブルで参照されているフィールド用の固有インデックスがありません。」 というエラーメッセージが出てきてリレーションを作る事が出来ません。 問題なのは3つのテーブルのリレーションなのですが、それぞれのインデックスをチェックすればいいのだとは思いますが、対象となったフィールドは主キーではないので、重複は許可していますが、一応どちらもインデックスは作成しています。 どのようなリレーションシップかというと、業者テーブルと商品テーブルと販売履歴テーブルのリレーションで、 商品テーブルの業者IDと業者テーブルのIDのリレーション→左内部結合(商品テーブルの全フィールドに入れる) 業者テーブルの業者IDと販売履歴の業者IDのリレーション→右内部結合 は出来るのですが、商品テーブルの商品名と値段フィールドと、販売履歴の対応する部分についてのリレーションについてもたせようとするとエラーが出てしまいます。このようなリレーションはいらないのでしょうか? どちらも固有の値でない量のリレーションだからなのでしょうか? この二つのフィールドの参照整合性をどう保てばいいのか教えて下さい。

専門家に質問してみよう