それぞれが97個のフィールドを持つ3つのテーブルのUNIONを取得しようとしています。私は次のことを試しました:
select * from table1
union all
select * from table2
union all
select * from table3
これにより、エラーメッセージが表示されます。
Too many fields defined.
また、最初の表からすべてのフィールド名を明示的に選択しようとしました(簡潔にするために省略記号が追加されています)。
select [field1],[field2]...[field97] from table1
union all
select * from table2
union all
select * from table3
このようにUNIONのテーブルが2つしかない場合は、正常に機能します。
select * from table1
union all
select * from table2
このクエリの結果として、97を超えるフィールドになってしまうことはありません。2テーブルのUNIONには97しかありません。では、なぜToo many fields
3つのテーブルを使用するのでしょうか。
編集:RichardTheKiwiが以下に示すように、AccessはUNIONチェーン内の各SELECTクエリのフィールド数を合計しています。これは、3つのテーブルが最大255フィールドを超えていることを意味します。したがって、代わりに、次のようにクエリを作成する必要があります。
select * from table1
union all
select * from
(select * from table2
union all
select * from table3)
これは正常に動作します。