• ベストアンサー

リレーションシップがたくさんついているクエリ同士だと、不一致クエリを作

リレーションシップがたくさんついているクエリ同士だと、不一致クエリを作成することはできないのでしょうか? 不一致クエリにしたい二つのクエリのみ別のフォームで作成し直して、不一致クエリを作成すると、抽出してくれたのですが、もともとのリレーションシップがついているクエリのままだと抽出が0になってしまいます。 フィールドやデザインは全く同じなのですが、やはりリレーションシップのせいでしょうか?

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

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

【要旨】 クエリの結合線は、『結合先のテーブルのデータを検索条件として 扱う』という働きを持ちます。 リレーションシップによって自動で追加された結合線が不要(無用) な場合は、クエリのデザインビューから削除する必要があります。 ※リレーションシップは削除せず、クエリ毎に結合を編集します※ 【詳細】 > リレーションシップがたくさんついているクエリ同士だと、 > 不一致クエリを作成することはできないのでしょうか? 『リレーションシップ』が「直接」レコードの抽出件数を左右する ことはありません。 ただ、クエリのデザインビューで、リレーションシップが設定 されたテーブル同士を追加した場合等には、それに対応した 『結合線』も自動的に追加されます。 リレーションシップと結合の違いについて(回答No.2): http://okwave.jp/qa/q5073445.html この、『クエリのデザインビューでの、テーブルの結合』は、 「複数の検索条件を指定した抽出」としての意味を持つため、 リレーションシップの設定が、結果として(間接的に)、 抽出件数を左右する、ということはあります。 http://okwave.jp/qa/q5683407.html 従って、クエリで実際に行いたい抽出の内容によっては、 リレーションシップの設定を元に自動的に追加された結合を 削除したり、結合の種類を変更したり、といった操作も必要に なります。 操作方法は、それぞれ以下の通りです: <結合線の削除> a)結合線をクリックして太線表示になった状態で、キーボードの  Deleteキーを押す b)結合線を右クリックして表示されるメニューから「削除(D)」を  選択 <結合線の変更>  結合線をダブルクリックするか、それを右クリックして表示  されるメニューから「結合プロパティ(J)」を選択すると開く  『結合プロパティ』ダイアログで、目的に合った項目を選択 ・・・以上、長文失礼致しました。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

もとになっているテーブル、クエリ、 作成したクエリの構造やデータがないと 何も言えませんが。

関連するQ&A

  • Access のリレーションシップで一部一致

    いつもお世話になっています。 Accessでクエリを作成するにあたり、リレーションシップを設定したいのですが、 一致させるフィールドが「123456/S1234とS1234」,「S001234とS1501234E」,「5678と5678」など、 完全一致するものと一部一致するものが混在しています。 一部一致のものでも、どれと一致させるかを判断することはできるのですが、 この状態では通常のリレーションシップは設定できませんか? 設定できないならば、一度加工して完全一致したテーブルを作成し、 それとリレーションシップをVBAで設定するしかないでしょうか?

  • アクセスのリレーションシップとクエリ

    私は、アクセスの初心者です。なので、難しいことはよく分からないのですが、アクセスではある1つのフィールドをキーにしてくっつけたりすることができるじゃないですか?そのキーを設定したりするのはリレーションシップでも、クエリでも同じような感じで行うと思うのですが、その2つの違いはクエリはそれをテーブルとして表示できるのに対して、リレーションシップはただ定義するしかできずテーブルとして表示はできないのでしょうか? あと、クエリとかである条件で抽出したテーブルの1つのフィールドのSUMを出したいのですがどういった条件式を書けばいいのでしょうか? なにぶん、初心者ゆえに質問が分かりにくいと思いますが、どうかよろしくお願いします。

  • 選択クエリを基に不一致クエリを作成したけれど...

    識者の力をお借りしたく質問いたします。 質問ページから不一致クエリに関する内容を参考に、ある不一致クエリを作成しています。 しかし、出来るはずの方法で結果が正しく表示されず途方にくれています。 処理の内容としては、あるクエリのフィールドを参考に不一致クエリで差分レコードを抽出したいというものです。 通常不一致クエリはテーブルの主キーを基に作成するものと私は理解しているのですが、今回の処理では基のテーブルに主キーが無く、(作成できない事情があり)クエリで無理矢理主キーもどきのものを作りました。 クエリで作成したのは、数字6桁(最大で)の後ろにチェックディジットとしてアルファベット1文字を追加した計7文字のフィールドです。 例:131401A 不一致を抽出したい基となる2つのテーブルに対しこのクエリを作成しました。 この2つのクエリから不一致クエリで差分を抽出し、基のテーブルに追加クエリで追加したいのですが、どうやっても不一致項目が表示されません。 根本的にクエリからの不一致クエリは作成できないのでしょうか? よろしくお願いいたします。 ■状況 テーブル1/テーブル2(基となるテーブル、主キー無し) クエリ1/クエリ2(テーブル1/テーブル2のレコードにコードを追加するクエリ) コード1/コード2(クエリ1/クエリ2で作成したコード)例:131401A 不一致クエリ テーブル2 → テーブル1 (リレーションシップ) コード2 条件:Not Null ※テーブル2の方が最新レコードが入っているので、テーブル2の差分レコードをテーブル1に追加したいというのが基本的な内容です。 よろしくお願いいたします。

  • 不一致クエリーを活用したい MS:ACCESSにつ

    ACCESSの不一致クエリーについて質問です。 不一致クエリーをウィザードで作成すると、1つの項目(列)に対して不一致な場合に その情報を抽出するというデザインになっていますが、 これを、もう少し厳しくして、3つ、ないしは4つの項目(列)が一致していないと、 不一致とする・・・といったようなデザイン(クエリー)は作れないでしょうか。

  • アクセス クエリ

    アクセス クエリの抽出について教えて下さい。例えば、1つのクエリの中に数値のフィールドが5つ作成してあり、それぞれ違うフィールドの抽出条件をしています。それぞれの条件を入れてしまうと5つのフィールド条件全てに合ったものしか抽出できません。 5つのフィールドのうち、どれでも1つ一致したら抽出できるようにしたいのですが良い方法を教えて下さい。宜しくお願いします。

  • 【Access】部分一致で不一致データを抽出したい

    クエリで2つのテーブルから、不一致データを抽出したいのですが、 完全一致だけでなく部分一致のデータも一致データとして取り除きたいです。 [テーブルA]フィールド1 000-0001 000-0001A 000-0002 000-0003 000-0004 [テーブルB]フィールド2 000-0001 000-0002 というようなデータで、結果は [結果] 000-0003 000-0004 というふうにしたいです。 (000-0001だけでなく000-0001Aというデータも取り除きたいのです。) Access初心者で、クエリウィザードを使用した重複データ抽出、不一致データ抽出、 およびクエリデザインを使用した重複データ抽出が何とかできる程度です。 初心者でも分かるようにご回答いただければ大変助かります。 よろしくお願いいたします。

  • ACCESSのクエリ:抽出条件で型が一致しません

    ACCESSでクエリを作ったのですが 実行すると、 「抽出条件で型が一致しません」のエラーが出ます 問題となっているヶ所は テーブルのフィールド定義がバイナリーになっています そして、クエリで   フィールド   テーブル   並べ替え   表示   抽出条件   または となっていますが、 この抽出条件に、1、を入れました テキスト型なら、"1" 数値系型なら、1、でいいのか、と思ったのですが バイナリ型は別の表現があるのでしょうか よろしくお願いします

  • Accessでの不一致クエリについて

    同じデザインの2個のテーブルに データが(順不同に)入っています。 この2個のテーブルの整合性を確かめたいのですが、 不一致クエリだと一箇所のフィールドしか比べることができません。 全てのフィールドの整合性を一度に確かめたいです。 何かいいほうほうはありますでしょうか? よろしくお願いします。

  • リレーションシップ

    アクセスですが、リレーションシップを設定しなくてもクエリが使えるそうなのですが、設定しなくても、クエリ(抽出)する方法を教えて下さい。

  • 不一致クエリでnullまで抽出されてしまいます

    質問です。 現在、accessにて不一致クエリを使用し、テーブルAをチェックし、 マスタテーブルに無い情報が書かれてしまっているフィールドがある場合 抽出して確認をする、というクエリを作りたいと考えています。 不一致クエリにて自動で入る「is null」を使用すると マスタテーブルに無い事が書いてあるレコードは抽出するのですが (逆になぜis nullで相違するレコードが抽出されるのか理解に苦しんでもいるのですが) is nullですので、nullのレコードも抽出されてしまいます。 抽出条件として、マスタテーブルと相違するもの&nullは抽出しない、としたいのですがお知恵を拝借出来ませんでしょうか。 よろしくお願いいたします。

専門家に質問してみよう