• 締切済み

ACCESSで質問です。

ACCESSで質問です。 テーブルA(複数企業)とテーブルB(Aの企業に対する対応状況)があります。 選択クエリにてAとBの2つのテーブルを電話番号でリレーションをもたせ、その企業の対応状況を検索し、結果をフォームに表示できるものを作りました。 しかし、企業(テーブルA)に対して複数の対応状況(テーブルB)があるため、フォームでBの対応状況分と同じ枚数のAレコードが表示されてしまいます。 クエリのプロパティで「固有のレコード」を「はい」にしても表示されてしまいます。 イメージでは、AテーブルとBテーブルの項目どれでも検索ができ、初めに検索結果をフォーム1で企業データを表示させ、コマンドボタンをクリックするとフォーム2で、その企業の対応状況が表示されるようにしたいのです。 現在検索は出来ていますが、フォーム1で同じ企業データレコードが複数表示されないようにしたいのです。 どのようにしたら出来ますでしょうか?アドバイスお願いします。 ・使用バージョンはACCESS2000です。 ・Aテーブルの企業データは重複なしです。 ・Aテーブルの主キーは電話番号です。 ・検索条件はA・Bの項目合わせて10項目で、全てIIFを使用して検索しています。 ACCESSを始めたばかりの初心者です。質問も初心者レベルですが、よろしくお願いします。

みんなの回答

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

カテゴリ違いの指摘のみなら、運営スタッフの方へ連絡するだけでよいのでは? > No.1 ・・・さて、本題ですが、 > クエリのプロパティで「固有のレコード」を「はい」にしても表示されてしまいます。 抽出結果を非重複で表示したいということでしたら、「固有のレコード」ではなく 「固有の値」の方を「はい」に設定する必要があります。 また、この設定によって非重複になるのは、「表示される全てのフィールドが同値の 場合」だけです。 ですので、クエリのデザインビューでは、「検索条件を指定するために使用している Bテーブル由来のフィールド」を追加しているかと思いますが、そのフィールドの 「表示」チェックはオフに(=”クエリ上で”フィールドを非表示に)してやる必要が あります。 上記2点について、まずは確認してみてください。 なお、もしも余力があるようでしたら、  ・「各テーブル間のデータの関連性」以外の意味を持たない新規フィールドを   追加して、それを主キーにする   【電話番号の変更発生時に、関連付けが破綻する危険があるため】  ・1つのクエリ内でIIF関数を使用して条件分岐するのではなく、条件指定の有無   のパターンに合わせたクエリを用意しておき、マクロ/VBA上での分岐で、   必要なクエリを使用するようにする   (なお、SQL文(=クエリを「SQLビュー」で開くと見られます)を直接扱えるように    なると、VBA上でSQL文を直接作成する、といったこともできるようになります)   【クエリが複雑だとメンテが面倒だったり、表示に時間が掛かったりするため】 といったことも、検討してみてください。 (自分の手に負えることがまず第一ですので、あくまで「余力があれば」です(汗))

damian__mariam
質問者

お礼

早々のアドバイスありがとうございました。 アドバイスの通り、Bテーブルの「表示」をオフにしたら、出来ました。 まだ始めたばかりですが、クエリの設定の理解不足を感じました。 もっともっと勉強します。 ありがとうございました。

noname#160321
noname#160321
回答No.1

ここじゃなくて「デジタルライフ」とか「専門PC」のマイクロソフトofficeの処で聞いた方が早いです。