• ベストアンサー

アクセスのテーブルをくっつける方法

条件として、全く同じデータ構造のテーブルが複数ある場合、それらを一つのテーブルに追加する方法を教えてください。 すくなければ、コピー、ペーストするのですが・・・ クエリーでできればうれしいですが。 宜しくお願いいたします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>く同じデータ構造のテーブルが複数ある場合 クエリの新規作成を選び選択クエリウィザードでテーブルのクエリを作ります。 そのクエリをクエリの種類で追加にし追加するテーブルを指定すればテーブル追加クエリが簡単にできます。 同様にして他のテーブルもクエリを作り追加するテーブルを指定すれば一つのテーブルに他のテーブルのレコードを追加できます。

yukka05
質問者

お礼

ありがとうございました。 SQL文かけないので、メニュー操作でできるのはとても助かります。

その他の回答 (2)

回答No.3

UNIONクエリがそのためのものだと思いますが、私の場合はそれぞれ違うフォルダにある同名のMDB(約30個)でテーブル名が同じ、毎月同じことをしなければならない、という条件だったので、読み込み用のmdbに同じ構造のテーブル(src_tbl)を作っておき、以下のようにしました。 適当にフォームを作り、ボタンを貼り付け、クリック時-イベントプロシージャで下記のように記述。 Private Sub コマンド0_Click() DoCmd.TransferDatabase acLink, "Microsoft Access", "フルパスのmdb名(1)", acTable, "テーブル名", "リンク名(1)", False DoCmd.TransferDatabase acLink, "Microsoft Access", "フルパスのmdb名(2)", acTable, "テーブル名", "リンク名(2)", False     ・     ・(必要なだけリンクを張る)     ・ Dim db As Database Dim mySQL As String Set db = CurrentDb mySQL = "INSERT INTO src_tbl SELECT * FROM リンク名(1)" db.Execute mySQL mySQL = "INSERT INTO src_tbl SELECT * FROM リンク名(2)" db.Execute mySQL     ・     ・(リンクテーブルのデータをsrc_tblに読み込む)     ・ db.TableDefs.Delete "リンク名(1)" db.TableDefs.Delete "リンク名(2)"     ・     ・(リンクを消す)     ・ db.Close Dim ret As Integer ret = MsgBox("処理が終了しました", vbOKOnly) End Sub

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

同じ構造のテーブルをくっつけるには、 UNIONを使います 例えば、 SELECT FIELD1, FIELD2, FIELD3 FROM TABLE1 UNION SELECT FIELD1, FIELD2, FIELD3 FROM TABLE2; のようなクエリを作成します。 新しくテーブルにするには、 入れ物を作ってから、クエリからデータを入れられたと思います。

関連するQ&A