- ベストアンサー
アクセスのテーブルをくっつける方法
条件として、全く同じデータ構造のテーブルが複数ある場合、それらを一つのテーブルに追加する方法を教えてください。 すくなければ、コピー、ペーストするのですが・・・ クエリーでできればうれしいですが。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>く同じデータ構造のテーブルが複数ある場合 クエリの新規作成を選び選択クエリウィザードでテーブルのクエリを作ります。 そのクエリをクエリの種類で追加にし追加するテーブルを指定すればテーブル追加クエリが簡単にできます。 同様にして他のテーブルもクエリを作り追加するテーブルを指定すれば一つのテーブルに他のテーブルのレコードを追加できます。
その他の回答 (2)
- air_glide
- ベストアンサー率0% (0/2)
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)
同じ構造のテーブルをくっつけるには、 UNIONを使います 例えば、 SELECT FIELD1, FIELD2, FIELD3 FROM TABLE1 UNION SELECT FIELD1, FIELD2, FIELD3 FROM TABLE2; のようなクエリを作成します。 新しくテーブルにするには、 入れ物を作ってから、クエリからデータを入れられたと思います。
お礼
ありがとうございました。 SQL文かけないので、メニュー操作でできるのはとても助かります。