• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS 1つのフォームに2つのリレーション)

ACCESS 1つのフォームに2つのリレーション

このQ&Aのポイント
  • ペット(熱帯魚)の交配、繁殖をしており、ACCESSでデータベースを作ろうと思っています。
  • 現在、T_交配マスターをもとにしたフォームウィザードで「F_新規交配」というフォームを作成しています。
  • オス親IDとメス親IDにそれぞれの血統のラインIDを入力した際に、対応する品種名を表示させたいと思っています。

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

  • ベストアンサー
回答No.1

既に試されてるように一度に見られるのは一つのテーブルにつき1レコードだけです。 仕方がないので "T_ラインマスター" に別名をつけて、同一構成の別テーブルを見るみたいにして見ます。 次のような操作でできます。 (1) [デザイン]→[プロパティシート]をクリックしてプロパティシートを表示し、[選択の種類]を"フォーム"にします。 (2) [データ]タブの[レコードソース]に何か記入されてると思いますがそれは直接いじらず、欄右側の[…]ボタンをクリックしてクエリビルダーを起動します。 (3) 現状では片親分しか見られていないので、"T_交配マスター" の "オス親ID" と "T_ラインマスター" の "ラインID" が線で結ばれてると思います。(添付画像の左の2テーブル分だけの関係) (4) [デザイン]→[テーブルの表示]をクリックするとダイアログが現れるので "T_ラインマスター" を選択します。 (5) するとクエリビルダーにもう一つ "T_ラインマスター" が現れるのですが、よく見ると名前が "T_ラインマスター_1" のように、微妙に元と変わっています。これで "T_ラインマスター" に別名がついたことになります。 (6) 追加した "T_ラインマスター_1" の "ラインID" からドラッグして "T_交配マスター" の "メス親ID" に繋げます。(添付画像はこの状態です) (7) クエリビルダーの下の部分に "T_交配マスター" のフィールドと "T_ラインマスター" のフィールドが表示されていると思いますが、 "T_ラインマスター" の表示内容をまねて "T_ラインマスター_1" のフィールドを追加します。 (8) クエリビルダーを閉じてもとの画面に戻ります。(保存するか訊かれたら"保存"を選択) (9) [デザイン]→[既存のフィールドの追加]をクリックすると、最初に比べ "T_ラインマスター_1" のフィールド名が追加されているはずです。 (10) フォームのメス用項目には "T_ラインマスター_1" のほうのフィールド名を使います。

参考URL:
http://office.microsoft.com/ja-jp/access-help/VA101814106.aspx
neve33609
質問者

お礼

puddingeater 様 ご回答ありがとうおございます。 >一度に見られるのは一つのテーブルにつき1レコードだけです。 なるほどそういう規則というか制約があったのですね。 今後に大変役に立つアドバイスありがとうございます。 >仕方がないので "T_ラインマスター" に別名をつけて・・・ "T_ラインマスター"テーブルは、このデータベースで核になる一番データーの更新、入力がありそうなテーブルですので、何か更新したときとか、VBAで常に別名で上書きしていく方法にで試してみますね。 最初からオスメス別のラインマスターテーブルを作った方がいいかもしれませんね。。。 一度、教えてもらった別名でテーブルをコピーして呼び出す方法で試してみます。 他に、テーブル構成をこうした方がいいなど、アドバイスありましたらよろしくお願いします。

関連するQ&A