• 締切済み

アクセスでクエリ実行後の空欄について

こんにちは。 アクセス初心者の者です。 アクセスを用いてクエリを作成しています。 テーブルAとBがあります。 Aの1フィールドと、Bの1フィールドを結合して、 Aの2フィールドと3フィールドを表示させるようなクエリです。 (結合プロパティで、Bの空欄を無視するようにしています。) しかし、結果を表示してみると、Bの1フィールドはちゃんと値が入っているにもかかわらず、 Aの2フィールドと3フィールドの値が挿入されず、 空欄になっているところが「ところどころ」あります。 入ってるところもあれば抜けているところもあり、不思議です。 データ量が多く、エクスポートすると10Mバイト以上あるのですが、そういうのが影響しているのでしょうか。 ちょっと説明しずらく、わかりずらいかもしれませんが、 その際はもっと説明させていただきますので、 どうぞよろしくお願いいたします。

みんなの回答

  • keikan
  • ベストアンサー率42% (75/176)
回答No.3

>実は、Bの1フィールドと結合しているのはAの1フィールドだけではなく、 後にあるフィールド、例えば5フィールドや10フィールドとも複数結合させています。 デザインビューのイメージで言えば、とテーブルAのいくつかのフィールドからテーブルBのフィールド1へ向かって数本結合線が出ているような感じです。 これって、 テーブルBのフィールド1にテーブルAから何本もの結合線が出ていると言うことですか? テーブルAのフィールドx、フィールドy、フィールドzがあり、それらがテーブルBのフィールド1に結合している状況と言うことは テーブルAのフィールドx、フィールドy、フィールドzが同じ値を指しているということになりますがどうでしょう? また、テーブルBと結合する理由はなぜでしょう? 表示するのはテーブルAだけですよね? テーブルAのフィールドxにあるものがテーブルBにある物だけという抜き出しでしょうか? このときフィールドx、y、zが独立した値というのであれば、それぞれにテーブルBのフィールドに結合させなければならないので、 そのフィールドの数だけテーブルBを追加してそれぞれに1対1で対応させた結合をつくってください。

nyan03
質問者

お礼

>テーブルBのフィールド1にテーブルAから何本もの結合線が出ていると言うことですか? その通りです。 また私の記述ミスですが、表示するのはテーブルBのフィールド2や3でした。 わかりにくくしてしまい、すみません。 でも、結合するフィールドの数分だけテーブルBを追加しないといけないということがわかりました。 ただ、そうなるとすごい数になるかもしれません・・・。 こういう結合って、あのデザインビューでテーブルを追加してってやるしかないんですよね。 やってみます。どうもありがとうございました!

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> 複数結合させています。 とりあえず、今のクエリはそのままにして、別途新たに作成された方が良いでしょう。 > 数本結合線が出ているような感じです。 テーブルAとテーブルBの参照を「同じ方向」で行いましたか? 一つはテーブルAからテーブルBへ、もうひとつはテーブルBからテーブルAへドラッグ、なんてやってたら発生しそうです。 条件が多くあるなら、事前に絞り込みのクエリを作成して、それらを結合させた方が 確認も簡単だし、スムーズに進められると思いますよ。

nyan03
質問者

補足

ありがとうございます! 結合の方向は同じ方向です。 >条件が多くあるなら、事前に絞り込みのクエリを作成して、それらを結合させた方が 確認も簡単だし、スムーズに進められると思いますよ。 事前にしぼり込みのクエリというと、どういうことになるのでしょうか。 よろしければ教えて下さい。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

テーブルAのフィールド1とテーブルBのフィールド1が キーなんですね? > (結合プロパティで、Bの空欄を無視 とはテーブルBにフィールド1以外があると捉えて良いですか?(仮にフィールド2としましょう) 現在作成されているクエリの、SQLビューの内容を拝見させてください。 1)テーブルAのフィールド1 2)テーブルBのフィールド1 3)テーブルAのフィールド2 4)テーブルAのフィールド3 5)テーブルBのフィールド2(もしあれば) 6)JOINとWHERE句

nyan03
質問者

補足

ありがとうございます! テーブルBにはフィールド1以外があります。 「SQLビュー」で表示しようとすると、 「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。 いずれかの結合を実行するために、第一次結合を実行する分割クエリを作成し、 ステートメントにそのクエリを含めてください。」 と出てしまいました。 なお、「データシートビュー」や「デザインビュー」はできます。 実は、Bの1フィールドと結合しているのはAの1フィールドだけではなく、 後にあるフィールド、例えば5フィールドや10フィールドとも複数結合させています。 デザインビューのイメージで言えば、とテーブルAのいくつかのフィールドからテーブルBのフィールド1へ向かって数本結合線が出ているような感じです。 こういう結合が影響しているのでしょうか?

関連するQ&A

  • アクセスのクエリで

    アクセスのクエリで、テーブルAのフィールド1が"a"又は、"b"の場合は、"ABC"と表示し、それ以外の場合は、テーブルAのフィールド2に対応している、テーブルBのフィールド1の値を表示させる事はできますか? 誰か教えて下さい。よろしくお願いします。

  • Accessの削除クエリで「クエリが複雑すぎて実行できません」

    困っています。どなたかご存知の方がいらっしゃいましたらお願いしますm_ _m (1)Aクエリ(選択クエリ)とBテーブルを削除クエリでつなぐ(結合プロパティはAクエリ全件から→B) (2) (1)の削除クエリは、 B全件から(From B*) Bのフィールド40列ぐらい(数値列)を落とし、 (Where 条件「0」←数値ゼロをいれる) (3)削除クエリを実行すると、「複雑すぎて実行できません。」というエラーメッセージがでてきて実行できません。何か駄目なのでしょうか? やりたいことは、 Bテーブルを、 Aクエリにあるレコードは抽出し、のちフィールドの値が0のものは削除したいのです。 よろしくお願いします。

  • アクセスのクエリーのことで教えてください

     テーブル1とテーブル2があってクエリーでリレーションシップを組むときに  結合プロパティを「テーブル1の全レコードと、テーブル2の同じ結合フィールドのレコードだけを含める。」にして表を作ろうとしたのですが、テーブル2に レコードが無い場合、テーブル1,2を使って作ったクエリー1で表を作り、 ビルドでクエリー1の項目を貼り付けて、計算させると、テーブル2にレコードが無いと空欄になっているためか、計算がうまく行きません。この問題を解決するにはどのような方法をとればよいですか? ほんとにこまったちゃんになっているので教えてください。 

  • アクセスのクエリ フィールドの合計

    フィールドの合計 アクセスのクエリでいくつかのフィールドの合計を出そうとして クエリのフィールドに以下の式をいれております。 ⇒合計:([A])+([B])+([C]) (例えば[A][B][C]のフィールドの合計を出すとして) しかし、[A]の値が1、[B]の値が2、[C]の値が2と入っている場合は5と合計値が当然でますが 例えば[C]のフィールドが空欄の場合、合計値欄が空欄で表示されます。 非常に簡単な質問かと恐縮ですがおしえてください!

  • アクセスのクエリで

    アクセスのクエリで、テーブルAのフィールド1が空白の場合は、0と表示し、(数値型)そうでない場合はフィールド1の値を表示するにはどの様にしたら良いですか? 誰か教えて下さい。よろしくお願いします。

  • ACCESSの結合

    よろしくお願いします。 ACCESS2000で、AテーブルのA'フィールドとBテーブルのB’フィールドを結合させ、同一でないものを表示させる(クエリーで)方法を教えてください。 よろしく、お願いいたします。

  • ACCESSクエリでの結合の仕方

    ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。

  • ACCESS2003クエリの結合した表示形式が

    ACCESS2003でクエリを作成しました。各テーブルのフィールドを結合したのですが 表示形式が思ったようになりませんでした。 【Aテーブル】 フィールド:学部NO データ型:数値型 書式:00 【Bテーブル】 フィールド:学科NO データ型:数値型 書式:00 【ABクエリ】 フィールド:学籍NO:[Aテーブル]![学部NO]&[Bテーブル]![学科NO] 【ABクエリ】の結果が数字が4桁表示されません。 (例) 0101 と表示してほしいのですが、   11  と表示されます。 各テーブルでは、01と表示されるのですが・・・。 宜しくお願いします。

  • Accessのクエリ実行について

    すみません。ご存知でしたら、教えてください。 まず一点、基本(?)を確認させてください。 下記のように数個のテーブルとそれらを使用した数個のクエリがあったとします。 下記の場合に、もしどれかのテーブルを更新したとします。 その場合、アクセスを立ち上げて、クエリ3を実行するだけで、結果には反映されているのでしょうか?それとも、アクセスを立ち上げて、 クエリ1を実行し閉じ、クエリ2を実行し閉じ、最後にクエリ3を実行しないと、反映されていないのでしょうか? --------------------------------------------------------- テーブルリンクA 、テーブルリンクB、テーブルリンクC、テーブルリンクD ↓↓ テーブルAとテーブルBでクエリ1(マッチング)を作成 テーブルCとテーブルDでクエリ2(マッチング)を作成 ↓↓ クエリ1とクエリ2でクエリ3(マッチング)を作成 ------------------------------------------------- 続いて、もし上記でいちいち途中のクエリを実行しないと、 最後のクエリに反映されない場合、すべてをACCESSを立ち上げたと同時に自動実行し、自動で最後のクエリ(この場合、クエリ3)をエクスポートしたいと考えています。可能でしょうか? 素人な質問ですみません。 何卒よろしくお願いいたします。

  • アクセス・選択クエリについて

    アクセス・選択クエリについて こんにちは。現在、選択クエリについて悩んでおります。 テーブルAとテーブルBからそれぞれ3つのフィールドを選び、選択クエリを作成。しかし、出来上がったクエリのデータシートには一切データが表示されていません。ならばと思い、テーブルAからだけ3つのフィールドを選びクエリを表示させると、きちんと表示します。テーブルA,テーブルBには当然主キーが設定されていますが、その事と関係するのでしょうか?ご存知の方、どうか教えてください。宜しくお願い致します。