プロが教えるわが家の防犯対策術!

私は、accessについてあまり詳しくないものなのですが、仕事上50近くあるデータを一つにまとめたいんです。
データは2つありまして、
1.それぞれのテーブルが微妙にフィールド数が異なる場合の結合
 例)・Aのテーブルのフィールド名 
   名前 クラス名 出身県 出身コード 血液型 性別
   
   ・Bのテーブルのフィールド名
   名前 出身県 血液型 性別

   ・Cのテーブルのフィールド名
   名前 クラス名 出身コード 血液型 
  ⇒このように微妙に異なる。しかもレコード数がかなり多いのです。これは、ユニオンクエリは使えないですよね?何かいい方法はないでしょうか?


2.テーブルの構造は同じなのですが、フィールド数が多くてユニオンクエリを使おうとすると、『フィールド数が多すぎる』とエラーメッセージがでてしまう。この場合の対処方法でいいのはないでしょうか?

なにぶん、私はaccessをあまり使わないのでわかりにくい質問だと思いますが、どなたかすみませんが教えてください。お願いします。

A 回答 (1件)

> これは、ユニオンクエリは使えないですよね?



ユニオンクエリで、フィールドを「*」で省略することはできなくなりますが、
表示するフィールドを列挙する形であれば、対応可能です。
(但し各Select文で、不足するフィールド分のダミー列の追加が必要)

【例】
Select 名前, クラス名, 出身県, 出身コード, 血液型, 性別 From A
Union
Select 名前, "(不明)", 出身県, "(不明)", 血液型, 性別 From B
Union
Select 名前, クラス名, "(不明)", 出身コード, 血液型, "(不明)" From C;

※当該テーブルがデータを持たない時に「(不明)」と表示させる場合。


> 『フィールド数が多すぎる』とエラーメッセージがでてしまう。

とりあえず、45フィールドほどのテーブルを作成してテストした限りでは、
そのメッセージは表示されませんでした(汗)

もしも、必ずしも常に全フィールドのデータが必要ではないなら、ひとつの
手段としては、上記のように必要なフィールドに限定してユニオンクエリを
作成する、という方法があるかと思います。
(一旦作業用のテーブルを作成し、これに順次、追加クエリで他のテーブル
のデータを追加、というのも考えましたが、なんとなくこちらでも同様に
フィールド数の上限を超えてしまいそう・・・(汗))


あまりお役に立てそうにありませんが(汗)、参考までに。
    • good
    • 0
この回答へのお礼

ユニオンクエリでダミー列を入れるとできるわけですね!
フィールドの件に関しても250以上のフィールド数なので、別のソフトを利用することにしました。
ありがとうございました。

お礼日時:2010/02/10 16:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A