• 締切済み

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の処で聞いた方が早いです。

関連するQ&A

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

  • Accessのエラー (いくつかあります・・・)

    アクセスでデータを入力したのですが、なぜか下記のエラーがでます… *作成したアクセスデータ* テーブル 項目AのCDと項目A、項目BのCDと項目B、項目CのCDと項目C、項目A~CのCDとその他繰り返し入力しないデータ の合計4つのテーブル それらすべてをリレーションでつないでます クエリ 全項目入りのテーブルを元に作ったもののみ フォーム クエリを元にウィザードを使って作成 *エラー* (1)クエリを作った時に、1つでもCDが入力されてないフィールドがあるとその行全体が表示されなくなる  (CDを入力したら表示されますし、テーブルではCDが入ってなくても全て表示されてます) (2)フォームで新たにデータを入力しようとしても一切入力できないし、変更もできない時がある (使用可能等の項目は一切触っていません) (3)フォームでCDが入ってる箇所を未入力にしたままでは保存できずに、「CDと値が一致しません」?のようなエラーメッセージがでる (すみません、エラーメッセージはうろ覚えです…) (4)なぜか昇順で番号を並べ替えていたのに、フォームでデータを追加したら、昇順が反映されずに「1,11,2…」のようにフォームのみ表示される (テーブル・クエリは反映されています) このエラーの原因がわかる方ぜひ教えてください!! よろしくお願いします。

  • Access サブフォームの背景色

    開発環境はAccess 97です。 テーブルAとテーブルBを結合した選択クエリABを レコードソースとするフォームを作りたいと思います。 サブフォームを使用し、レコードの内容はデータシート 形式で表示したいのですが、ソースがテーブルAの項目 に対する更新は制限したいため、編集ロックプロパティを [はい]に設定しました。 編集ロックがかかっている項目は視覚的にそうと わかるよう、背景色を変えたいのですが可能でしょうか? 過去ログを調べたら「可能」「不可能」両方の回答が ありました。

  • Access クエリの最大項目数

    教えてください。 開発環境はAccess97です。 複数テーブルを互いに結合し、一つの選択クエリー[A]を 作成した後、フォーム[B]に関連付けて[B]上のテキスト ボックスで[A]のデータを表示したいと思います。 (一つのテキストボックスは一つの項目を表示する) 選択クエリーのフィールド数は最大128個までしか 設定できないと思うのですが、 フォーム[B]に一度に300個程度のデータを表示するには どうすればよいのでしょうか? サブフォームを使用せずにこれを実現することは可能でしょうか?

  • ACCESSについて

    Accessで以下のように処理したいのですが、方法を教えてください。 下記のように2つのテーブル1、2があり、それぞれ一つずつの項目(A、B)があります。 テーブル1  テーブル2  項目A    項目B  001     002  002     004  005     006  006     007  008     008 これをクエリーを使って、 クエリー0  テーブル1.項目A  テーブル2.項目B     001     002        002               004     005     006        006               007     008        008 と表示させたいのですが、どうしたらいいでしょうか?

  • Accessのクエリーについて教えてください。

    Access2000を使用しています。 不慣れなので、どういう設定をしたらいいのか悩んでおります。こんなことできますか? 1.テーブルが2つ存在しており、クエリーで1つ目のテーブルから項目Aと項目B、2つ目のテーブルから項目Bの3つを表示しています。 (2つ目のテーブルにも項目Aはあります。) 2.表示されたデータの中で、項目Bともう1つの項目Bの値が異なっているものだけを表示したいと思うのですが、どのように設定したらいいのでしょうか?

  • MS Access で、2つのテーブルを1度に表示できますか?

    うまく伝わるか自信ないんですが・・・ AテーブルとBテーブルがあります。 Aテーブルは、得意先へ請求済み売上データ Bテーブルは、得意先へ未請求の売上データ のレコードが入っています。 データを検索する際に、ABのテーブルを一度に検索して、1つのフォームに表示したいと思っています。 ファイル大きくなると困るので、追加クエリは使いたくありません。 何か良い方法はないでしょうか?

  • Access2010 コンボボックスで選択クエリ

    こんにちは。実は、勤め先でどうしてもアクセスを使って仕事をしなくてはならなくなり、次のような処理をすることになりました。 私はアクセスを使って非常に簡単なこと(クエリを作成したり、入力フォームを作ったりすることなど)はできるのですが、具体的にどうすればよいのか、どこから手を付ければよいのかわからずにいます。 どうかお助けくださいませ。 (1) テーブルを作成し、まずそのテーブルから、任意のレコードを複数選び出します。選択は2つのコンボボックスで行い、Aのデータを選ぶものとBのデータを選ぶものを使います。 (2) さらにこれを複数選べるようにもしておきます。たとえば、「(A)12の(B)38」を2枚など。 (3) 選んだレコードをクエリに書き出します。 (4) (3)で書き出すと同時に、レコードに連番を書き加えます。 (5) 連番をつけたクエリをもとに、そのデータをワードに差し込み印刷します。 (6) (5)の差し込み印刷は、印刷に時間がかかるので、PDFに書き出し、ファイル化します。 (7) ファイル化したPDFファイルから印刷をします。 (8) (4)の連番データは、次にこの作業をするときに呼び出し、次の連番をつける時に使います。 ざっとこのような感じになるのですが、何から手を付けていったらよいのかわかりません。 よろしくご指導お願いいたします。

  • アクセスのフォームについて

    アクセスのフォームについて教えてください DATAテーブルがあるとします。そのDATAテーブルの、すべてではなく ある項目5種類だけ表示したいと考えています。 ちなみにテーブルのレコードがいくつあるかはわからない状態で すべてのレコードを列挙する予定です。 クエリは訳あって使用できないのが前提なので、VBAでそれを可能としたいのですが ... フォームのレイアウトは下のような感じです =================================================================== DATA画面 AAA BBB CCC DDD EEE FFF GGG HHH III --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 以上がDATAです =================================================================== AAA BBB... が項目名です --- がレコードのそれぞれの明細です。 明細をすべて表示したら"以上がDATAです"と表示して終了です。 前にも書きましたがクエリは使用できません。VBAで実現したいとおもいます。 皆さんすみませんが宜しくお願い致します。

  • ACCESS内の検索

    お世話になります。できるのどうかわからないのですが宜しくお願いします。 ACCESSを利用し在庫管理などを行っているのですがその際、例えばクエリ名「A」というクエリをレコードソースとしフォームを作るとします。さらに同じクエリをレコードソースとしレポートを作ります。こういったように同じクエリやテーブルを使用する場合、システムの規模が大きくなるとクエリやテーブルがどこでどのように使用しているか把握しきれなく、また時がたつにつれ忘れていってしまいます。そこで、クエリやテーブルがどこで(クエリ、フォーム、レポート、マクロ、モジュールなど)使用されているか検索できるようにするにはどうしたらよいでしょうか? 宜しくお願いします。