こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2000におけるテーブル追加について

テーブル1にテーブル2の内容をすべて追加しようと思います。
二つのテーブルのフィールド項目は同じにしました。(テストなのでとりあえず番号と名前)
マクロを使ってやろうと思い、アクションを「SQLの実行」とし、SQLステートメント
には「INSERT INTO <テーブル1> SELECT<社員番号>,<名前>FROM<テーブル2>」
としました。
しかし、マクロを実行してみると「INSERT INTO 構文エラー」となってしまいます。
なぜなんでしょうか?

投稿日時 - 2001-06-21 11:42:12

QNo.93441

yke

すぐに回答ほしいです

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

SQLステートメントを使用してすべてのフィールドおよびレコードをテーブル2からテーブル1へ追加するのであれば、

INSERT INTO テーブル1 SELECT * FROM テーブル2;

と書けば可能なはずです。
また、フィールドを指定する場合には

INSERT INTO テーブル1 SELECT テーブル2.社員番号,テーブル2.名前 FROM テーブル2;

か、

INSERT INTO テーブル1 (社員番号,名前) SELECT テーブル2.社員番号,テーブル2.名前 FROM テーブル2;

と書けば可能なはずです。
宜しければ試してみてください。

投稿日時 - 2001-06-21 12:07:23

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

フォームのボタンを押したらテーブル2のレコードをテーブル1に追加したい場合、ボタンのアクションを直接「クエリーの実行」にして、テーブル2を元にした追加クエリーを作成するのが一番早いです。マクロやVBAモジュールを使用する必要は特にありませんし、逆に動作が遅くなる事もあります。

投稿日時 - 2001-06-21 17:37:29

ANo.2

素直に追加クエリーを書くほうが良いとは思いますが...

追加クエリーの作り方
1.クエリーを新規作成します。
  この時選択するテーブルはテーブル2
2.クエリーの種類を"追加"に変更します。
  メニューの「クエリー」-「追加」
3.追加先テーブルにテーブル1を指定します。

4.追加したいフィールドを選択します。

あとはこのクエリーを「!」で実行すれば追加可能です。

ただ、
insert into table1 select * from table2
または
insert into table1 (col1,col2,...) select col1,col2,... from table2
のクエリーで追加は出来るはずです。

投稿日時 - 2001-06-21 12:02:31

ANo.1

同じ内容にしたいのなら、単にコピー&ペーストじゃダメなんでしょうか。
テーブルごとも出来ると思うし、フィールド選択でも出来ると思いますが。

投稿日時 - 2001-06-21 11:54:19

補足

フォームからコマンドボタンをクリックするとテーブルが追加されるというふうにしたいのです。
VBAで書こうと思ったのですが、初心者なのでわからないことが多すぎます。
だから、マクロやクエリでできないのかなと思ってやってみてます。
できることならVBAでやってはみたいのですが・・・。

投稿日時 - 2001-06-21 12:56:10

あなたにオススメの質問