- ベストアンサー
Access2000におけるテーブル追加について
テーブル1にテーブル2の内容をすべて追加しようと思います。 二つのテーブルのフィールド項目は同じにしました。(テストなのでとりあえず番号と名前) マクロを使ってやろうと思い、アクションを「SQLの実行」とし、SQLステートメント には「INSERT INTO <テーブル1> SELECT<社員番号>,<名前>FROM<テーブル2>」 としました。 しかし、マクロを実行してみると「INSERT INTO 構文エラー」となってしまいます。 なぜなんでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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)
フォームのボタンを押したらテーブル2のレコードをテーブル1に追加したい場合、ボタンのアクションを直接「クエリーの実行」にして、テーブル2を元にした追加クエリーを作成するのが一番早いです。マクロやVBAモジュールを使用する必要は特にありませんし、逆に動作が遅くなる事もあります。
- yanmaa
- ベストアンサー率45% (207/457)
素直に追加クエリーを書くほうが良いとは思いますが... 追加クエリーの作り方 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)
同じ内容にしたいのなら、単にコピー&ペーストじゃダメなんでしょうか。 テーブルごとも出来ると思うし、フィールド選択でも出来ると思いますが。
補足
フォームからコマンドボタンをクリックするとテーブルが追加されるというふうにしたいのです。 VBAで書こうと思ったのですが、初心者なのでわからないことが多すぎます。 だから、マクロやクエリでできないのかなと思ってやってみてます。 できることならVBAでやってはみたいのですが・・・。