• ベストアンサー

今更ながらAccess2000の結合について

たとえば下記のようなテーブルがあります。 *得意先テーブル 得意先ID 得意先名称 得意先TEL  ・  ・ *取引履歴テーブル 得意先ID 商品ID 商品 取引日  ・  ・ 上記テーブルの得意先IDを主キーとして、Access2000のリレーションシップの画面で結合させることと、クエリのデザイン画面でテーブルを結合させる事は同じ事をしているのでしょうか? 同じだとすれば、どちらか一方のみを設定すればよいのでしょうか? 違うとすれば、リレーションシップの画面で設定することと、クエリのデザイン画面で設定することの意味の違いを教えていただけないでしょうか? ちょっと混乱しているので、おかしな質問をしておりましたらすみません f^^; どうぞよろしくお願い致します。

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

  • ベストアンサー
noname#1296
noname#1296
回答No.2

テーブルのリレーションとクエリーのデザインはあくまで別物です。 テーブルでリレーションを設定すれば、矛盾を許さない設定になります。 例えば、得意先テーブルのレコードを削除した場合、取引履歴テーブルにその得意先IDを持つレコードがあれば削除できない(または自動的に削除される)設定や、得意先IDを変更しようとした場合、取引履歴テーブルに同じ得意先IDがあれば変更できない(または自動的に変更される)設定などを行います。これにより双方のテーブルで矛盾が発生しなくなります。 クエリーに関してはこの場合だと、取引履歴に得意先名を表示させたりとかいう使い方ですよね?一致するレコードを表示させるっていう使い方になります。

tokin
質問者

お礼

早速の回答ありがとうございます。 なるほど、クエリとリレーションシップでは、設定の内容が違うのですね。 私はいつもリレーションも、クエリも両方設定(ダブって)していましたが、用途によってクエリかリレーション、どちらかを設定すればよかったのですか。 勉強になります、ありがとうございました。

その他の回答 (1)

  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

クエリーのデザイン画面を使用して設定すると、新しいクエリーを作る たびに設定をしないといけないです。 リレーションシップで一度設定しておけば、クエリーでいくつかテーブルを 追加するだけで勝手に設定まで終わっているはずです。 クエリーの画面で何度も設定をしなくても良いようにリレーションシップ があると考えれば良いと思います。

tokin
質問者

お礼

さっそくの回答ありがとうございます。 なるほど、クエリはテーブルが変更があるたびに都度の設定が必要で、リレーションシップは一度の設定で変更があっても覚えていてくれる。 ということですね。 勉強になります、ありがとうございました。

関連するQ&A