• ベストアンサー

マイクロソフト アクセスの質問です。

フィールドとフィールドの形式が全く同じテーブルが複数あります。 このテーブルを縦にくっつけて1つのテーブルにすることができますか? クエリの結合では横にしかつながらないため、困っています。 よろしくお願いします

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

以下の方法では、駄目ですか? SELECT フィールド1,フィールド2,フィールド3 FROM テーブル1 UNION ALL SELECT フィールド1,フィールド2,フィールド3 FROM テーブル2 UNION ALL SELECT フィールド1,フィールド2,フィールド3 FROM テーブル3

imadai
質問者

お礼

ありがとうございます。一発解決できました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

DAOやADOでレコードを扱う方法でも出来ます。参考に。 例 生徒、生徒11、生徒12テーブルがあるとします(同じフィールド構成) 生徒テーブルをコピーして、生徒14を作り、レコードを全行削除しておきます。 Sub test03() Dim db As DAO.Database Set db = CurrentDb Dim outf As DAO.Recordset Set outf = db.OpenRecordset("生徒14") Dim mySql As String mySql = "SELECT * From 生徒 UNION ALL SELECT * FROM 生徒11 UNION ALL SELECT * FROM 生徒12" Dim rs As DAO.Recordset Set rs = db.OpenRecordset(mySql) If rs.RecordCount = 0 Then MsgBox "なし" Do Until rs.EOF MsgBox rs.Fields("氏名") & " " & rs.Fields("県") outf.AddNew outf!氏名 = rs!氏名 outf!県 = rs!県 outf.Update rs.MoveNext Loop rs.Close  outf.Close Set rs = Nothing Set outf = Nothing db.Close Set db = Nothing End Sub の実行で合体したレコードのテーブルが出来ます。 outf!氏名 = rs!氏名 outf!県 = rs!県 は(上記では省略してますが)すべてのフィールドを網羅してください。 合体したレコードで何かしたいだけのときは、outf関連の行は省き、Msgboxの箇所に、処理したいことのコードを入れる。

noname#140971
noname#140971
回答No.3

失礼! UNION ALL UNION で可能でした。 よって、私の回答は無視されたし!

noname#140971
noname#140971
回答No.2

tab1: ID_fld1 1__AAAA 2__BBBB 3__CCCC tab2: ID_fld1 1__AAAA 2__BBBB 3__CCCC tab3: ID_fld1 1__AAAA 2__BBBB 3__CCCC この場合、一体、どのように統合するのでしょうか? tab4: fld1 AAAA BBBB CCCC AAAA BBBB CCCC AAAA BBBB CCCC という具合でしょうか? クエリ1: SELECT 1, fld1 FROM tab1 UNION SELECT 2, fld1 FROM tab2 UNION SELECT 3, fld1 FROM tab3; クエリ2; SELECT クエリ1.fld1 INTO tab4 FROM クエリ1; で・・・。

関連するQ&A