• ベストアンサー

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

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

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

  • ベストアンサー
  • Sarukan
  • ベストアンサー率55% (41/74)
回答No.3

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; と書けば可能なはずです。 宜しければ試してみてください。

その他の回答 (3)

  • Sarukan
  • ベストアンサー率55% (41/74)
回答No.4

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

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.2

素直に追加クエリーを書くほうが良いとは思いますが... 追加クエリーの作り方 1.クエリーを新規作成します。   この時選択するテーブルはテーブル2 2.クエリーの種類を"追加"に変更します。   メニューの「クエリー」-「追加」 3.追加先テーブルにテーブル1を指定します。 4.追加したいフィールドを選択します。 あとはこのクエリーを「!」で実行すれば追加可能です。 ただ、 insert into table1 select * from table2 または insert into table1 (col1,col2,...) select col1,col2,... from table2 のクエリーで追加は出来るはずです。

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.1

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

yke
質問者

補足

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

関連するQ&A