• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセス(access)のクエリ、リレーションシップについて)

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

このQ&Aのポイント
  • アクセスのクエリやリレーションシップについて詳細を教えてください。
  • 2つのファイルをリレーションシップ設定する際に問題が発生しているようです。
  • クエリを作成する際に、種別名の設定に問題がありデータが表示されないようです。

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

  • ベストアンサー
noname#15065
noname#15065
回答No.5

 No.2の続きです。  希望種別2が空欄の可能性があるのでしたら、希望種別2と「種別マスタ_1」の種別CDを結んだ線を右クリックし「結合プロパティ」を選択して、 '求職ファイル'の全レコードと'種別マスタ_1'の同じ結合フィールドのレコードだけを含める。 となっているラジオボタンをオンにしてOKボタンを押してください。線が矢印つきの線に変わると思います。  それで、うまくいきませんか?

sun365sun
質問者

お礼

きゃーきゃー (^○^) すご~~~い できました。 ♪♪♪ あ、すいません。興奮してしまいました。 ご指定の方法で解決しました。 ファイルのシステム的に問題なければ、 これで対応したいものです。 追加・変更等もクエリで行ったものが、テーブルに確実に反映されました。 ありがとうございます。m(__)m

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

その他の回答 (4)

noname#15065
noname#15065
回答No.4

 No.3の方へ  No.2で回答したものですが、手元で確認しましたが、出来ますよ。

すると、全ての回答が全文表示されます。
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

一番簡単な方法は#1の方が回答していますが種別マスタを2つ用意することです。 求職ファイルの希望種別1と種別マスタの種別CDを結合、希望種別2と種別マスタ2の種別CDを結合させる。 #2の方がクエリ上で種別マスタを2つテーブル追加するとありますがこれは種別マスタを1回開きインターフェースにセットしもう一度別の結合で開くようになってしまうので出来ないはずです。 >期日が迫っているのですが・・ しかし種別マスタが2つあるシステムなんて納入できないですよね。(黙って納入しちゃえば別ですが) 根本的に求職ファイルの考えを少し変えればどうですか。 求職ファイル:求職者CD・希望種別1・希望種別2 ではなく 求職ファイル:求職者CD・希望種別・希望順位 とすれば問題なくなるのではないでしょうか。 種別マスタとのリレーションは希望職種のみになるし希望順位は求職者の希望職種のレコード入力順にカウントを振ればできますし。

sun365sun
質問者

補足

早速の回答ありがとうございます。 >種別マスタが2つあるシステムなんて納入できないですよね。⇒後のメンテナンスの事を考えると、おっしゃるとおりです。できるならば、そういうシステムを作りたくはないですね。(^^ゞ <根本的に求職ファイルの考えを少し変えればどうですか。 求職ファイル:求職者CD・希望種別1・希望種別2 ではなく 求職ファイル:求職者CD・希望種別・希望順位 ということですが、もう少し詳しく教えていただいていいですか?  現在は求職者CDを主キーとして、数ある全てのデータを1つのファイルにて管理しようとしています。ご指定の方法は、求職者CD・希望種別・希望順位 の複合キーにて別ファイルを作り、クエリにて結合、求職者情報入力画面に表示・・・・という感じなのでしょうか?

すると、全ての回答が全文表示されます。
noname#15065
noname#15065
回答No.2

 クエリを作成するときに、種別マスタは同じものを2回登録してください。1回目は「種別マスタ」、2回目は「種別マスタ_1」という名前になるはずです。  そして、求職ファイルの希望種別1と「種別マスタ」の種別CD、 求職ファイルの希望種別2と「種別マスタ_1」の種別CDを線で結びます。  もし、求職ファイルの希望種別2と「種別マスタ」の種別CDが結ばれていたら、これは削除してください。

sun365sun
質問者

お礼

早速の回答、ありがとうございます。 アドバイス頂いた方法にて試してみました。 結果としては思うとおりにいきません。 クエリにて同一ファイルを2回目登録してデータビューにすると、同一データが複数表示されるようになりました。(クエリにファイルを追加しただけでフィールドは追加しなくても) また、No1の方のアドバイスの方法でも行いましたが、下記の通りです。なかなか良い方法が見つからずに困惑しております。環境はOSがMeで、アクセスは2000です。  貴重なお時間をさいていただいてありがとうございます。また何かお気づきの際はよろしくお願いします。m(__)m

sun365sun
質問者

補足

すいません。先ほど回答した後に再度確認しました。 データが複数表示されるというのは、私がテスト用に作成したファイルが関係していました。  不要のファイルを削除後再確認すると、複数表示の現象はなくなりました。申し訳ありません。m(__)m ただ、No1の方にも書きましたが、種別2に入力されているレコードしか表示されない・・・・という現象は同じなものですから、困っています。 まだ、自分の設定ミスがあるのかもしれませんね。 (>_<)

すると、全ての回答が全文表示されます。
  • PCFREAK
  • ベストアンサー率51% (417/805)
回答No.1

原因は、求職ファイルが「正規化」されていないからです。 ただ、今ここでリレーショナルデータベースの正規化についてクドクド説明しても無意味かな?と思いますので、実を取る方法をアドバイスします。 (決して美しい方法ではありませんが、今のテーブル構造を大きく変えないのでまだマシ、と言う程度に理解して下さい。) 種別マスタを2つ作れば良いです。 種別1マスタ、種別2マスタというように。 テーブル構造、データは全く同じでよいです。 この種別1マスタの種別CDを求職ファイルの希望種別1に、種別マスタ2の種別CDを求職ファイルの希望種別2にリレーションシップを設定して下さい。 これでお望みの表示が可能になると思います。 但し、種別マスタの内容が変更になった場合は種別1マスタ、種別2マスタの両方に変更を施す必要がありますが、そこは運用で工夫して下さい。

sun365sun
質問者

お礼

早速の回答、ありがとうございます。 「正規化」については、またあらためて勉強したいと思います。 アドバイス頂いた方法にて試してみました。 結果としては思うとおりにいきません。 別の問題が発生してしまいました。 <手順> ・テーブルを種別マスタ1と種別マスタ2として作成。  (どちらも同じデータが入っています) ・リレーションシップにて、希望種別CD1に種別マスタ1の種別CD1を、希望種別CD2に種別マスタ2の種別CD2を設定。 ・クエリにて、種別マスタ1と種別マスタ2の名称をそれぞれ設定。 始めは、やはりデータが表示されませんでした。 特に抽出条件などは設定してません。  希望種別2を空欄(レコード自体は存在する)にしていたので、これが原因か?と入力すると、表示されるようになりました。ただし問題が発生。 レコード自体は100件あったとします。 希望種別1は100件全てに入力され、希望種別2は10件のみに入力されているとします。  すると、10件のみしか表示されないのです。 これでは使えません。 希望種別2は入力されない可能性は多いにあります。 また、アクセスの機能から考えても、何も制限していないのに、表示されないのはおかしいですよね・・・ ご指定の方法だと、別ファイルになっているのと同じなのですから・・・  種別マスタ2をクエリにてテーブル追加(クエリデザインビュー上部画面)しただけでデータシートビューにそれまで表示されていた90件分のデータが表示されなくなります。(フィードをクエリに追加しなくても) 種別マスタ2を削除しただけで、データは表示されます。 テーブルプロパティでは”空文字の許可”も”はい”指定です。(関係ないとは思いますが)抽出条件指定もありません。 今の私の知識で考えられるところは、色々とチェックしたのですが分かりません。 求職ファイル側の主キーが、オートナンバーになっていることとかが関係するのでしょうか?  環境はOSがMeで、アクセスは2000です。

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

関連するQ&A