- ベストアンサー
Accessのテーブルデータを一気にVBAで追加したい・・
Accessのテーブルデータを一気にVBAで追加したい・・ Accessに一時商品登録データというテーブルがあり、 問題なければ商品登録データにデータを流し込みたいと思っています テーブルのデータ構造は全く同じです VBAで一時商品登録のテーブルから一件ずつデータを読み取って 商品登録データに追加することは出来るのですが 一気にデータを追加する方法があれば教えていただけないでしょうか? よろしくお願いいたいます
- haru-boo
- お礼率81% (22/27)
- その他(データベース)
- 回答数3
- ありがとう数5
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
本当にいろいろな方法があります。 一番簡単なのは、 あらかじめ「追加クエリ」を作成しておき Docmd.OpenQuery "追加クエリ名" あるいは DAO で Set dbs = CurrentDB dbs.Excute "追加クエリ名" 追加クエリを使用しない場合は 追加クエリの SQL文 に相当するSQL を 実行。 strSQL="INSERT INTO 商品登録データ SELECT 一時商品登録データ.* FROM 一時商品登録データ" Docmd.RunSQL strSQL あるいは DAO で Set dbs = CurrentDB dbs.Excute strSQL とか。 直書き、間違いがあったら御免。
その他の回答 (2)
- piroin654
- ベストアンサー率75% (692/917)
Do Until rs2.EOF の前に rs2.MoveFirst を追加して、 rs2.MoveFirst Do Until rs2.EOF としてください。
- piroin654
- ベストアンサー率75% (692/917)
方法はいろいろですが、以下のような方法があります。 テーブルのフィールド名を商品名、価格とします。 DAOを使っているのでコード表のツール、参照設定 からDAOの一番高いバージョンを選択してください。 Private Sub コマンド0_Click() Dim db As Database Dim rs1 As Recordset Dim rs2 As Recordset If MsgBox("データを転送していいですか?", vbYesNo) = vbYes Then Set db = CurrentDb Set rs1 = db.OpenRecordset("商品登録データ", dbOpenDynaset) Set rs2 = db.OpenRecordset("一時商品登録データ", dbOpenDynaset) Do Until rs2.EOF rs1.AddNew rs1!商品名 = rs2!商品名 rs1!価格 = rs2!価格 rs1.Update rs2.MoveNext Loop rs1.Close: Set rs1 = Nothing rs2.Close: Set rs2 = Nothing db.Close: Set db = Nothing End If End Sub なお、フィールド名が増加する場合は、 rs1.AddNew rs1!商品名 = rs2!商品名 rs!価格 = rs2!価格 rs1.Update のところに、フィールド名を追加してください。
お礼
ありがとうございました 参考にさせてもらいます
関連するQ&A
- ACCESSのテーブルのデータ追加VBA
(サーバーのORACLEのデータベースに追加) ACCESSのAテーブルのデータをBテーブルに追加する。追加クエリを使わずVBAで作成したいのですが、どうすればよいのでしょうか。 追加クエリだと件数が多いのか、タイムアウト、ログオーバーのような エラーになってます。 A,Bテーブルは同じレイアウトです。 Bテーブルは空です。 また、サンプルが出ているようなサイトを探しているのでですが どこか良いACCESS専用の質問サイトがありますか。 ACCESS CLUBはなんだか私には使いづらいので他のサイトがあれば宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- Accessでデータを一気に追加したい
音楽管理データベースを作りました。が、330曲ほどデータを追加しなければならないのですが1件1件追加していくのは現実的ではないので一気にデータを追加したいのですが、何かいい方法はありますか? バージョン:Access2002
- ベストアンサー
- オフィス系ソフト
- アクセスで同一テーブル内へのデータの追加
こんにちは。Access2000を使用しています。 「顧客テーブル」には「お買上げ年度」と「顧客名」フィールド があります。 「お買上げ年度」= "2007"の顧客を、「お買上げ年度」 = "2008" として「顧客テーブル」内に追加したいのですが、一度仮テーブル やCSVファイルにデータを退避することなく、クエリやVBA(ADO)で 対応することは可能でしょうか?(=同一テーブル内への追加クエリ を実行したい。)よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Accessのテーブル間のデータの追加・・・
お願いします。 Access のテーブル「T_受入処理」にエクセルからインポートしたテーブル「注文転送」があります。項目は同じです。「T_受入処理」には多くのデータが入ってます。「注文転送」には10個から数個のデータです。 「注文転送」を「T_受入処理」に追加したいのですがどうクリック時のイベントに書けばよいのか分かりません。一個一個でなく、「注文転送」のデータ全てを一気にです。 お願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルからアクセスのテーブルにデータ追加したい
Excel(xls)からAccess(mdb)のテーブル(出力)にデータを追加できるVBAコードを教えてください。 条件 Accessの名前と場所 C:\SP3\Print.mdb テーブル名 (出力) (履歴) テーブル構造 (出力) (履歴)ともに、フィールド1~4、ID 履歴テーブルのIDは、カウントアップであり、プリント後のデータが格納される。エクセルでマクロを起動したときに、最初に履歴テーブルの最後のIDを知り、エクセルの対応するID列をレコード分だけ最後のID+1から通番を付ける。通番を付けたら、エクセルのフィールド1~4とIDのレコードセットを出力テーブルの該当列に追加する。 以上がやりたいことです。 エクセルに、10行から100行程度のデータを貼りつけて、このVBAを紐づけたマクロボタンを押したら、履歴テーブルの最後を調べて、その次の番号から順に、上からID列を更新して、その後、出力テーブルに追加したいのです。 検査機器用に専用開発されたプリントソフトがデータベースにAccessを持っていて、プリントソフトのフロントからデータを手入力する仕様なのですが、エクセルで加工したデータをAccessの所定のテーブルに横差ししたい考えです。対象のPCには、Accessをインストールしていないため、エクセル側からテーブルを操作したい理由です。 よろしくお願いします。
- 締切済み
- Visual Basic
- Access 売上テーブル 月次追加
マイクロソフトAccess で月次で商品毎の売上数量のテーブルを作成し毎月 データを追加していきたい。商品A,商品B,商品C,,,,それぞれ数量が月次で売上個数をテーブルに入力を考えています。 ただ商品の件数が何千件もあるので,最新のひと月分の売上データはテーブルを作って既存のデータテーブルに追加したいと思います。 その際 追加するデータの方には今までにない商品、例えば商品Xがあったりします。 この場合はasccessではどのように処理すればいいでしょうか テーブル結合? 追加クエリ?
- ベストアンサー
- オフィス系ソフト
- Accessのテーブルへのデータインポートについて
Accessのテーブルへのデータインポートについて Access2002で、A.mdbのTESTテーブルからB.mdbのTESTテーブル(構造は同じ)へテーブルデータをインポートしたいのです。 TESTテーブルの主キーはSEQ(オートナンバー)しかありません。 そのときに、コピー元とコピー先の主キーに重複があった場合、オートナンバーなので自動で再付番しデータが追加して欲しかったのですが、 Accessの機能のエクスポート、インポートでは、コピー先に主キーに重複があったデータは上書きされてしまいます。 テーブルを開き、データをコピー&ペーストしますと、ペーストしたときにオートナンバーで自動で再付番されます。 この方法でもいいのですが、データが数百万件あるので、現実的ではありません。 Accessのインポート・エクスポートで、オートナンバーで主キーを再付番してから、B.mdbのTESTテーブルにデータ追加する方法はないでしょうか? よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- ACCESSでVBA等を用いて既存テーブルにフィールドを追加する
タイトルどおりです。 ACCESS97以降で、VBA等を用いた「既存テーブルにフィールドを追加する」方法を調べています。 業務で、デザインビューを使用せずにテーブルフィールドの追加が発生したので、その対応のためです
- ベストアンサー
- その他(データベース)
- ACCESS 入力フォームでテーブルへデータを複数追加する
自力で問題解決できないのでお願いします。 1画面の入力フォームでテーブルへデータを複数追加をしたいと考えています。 例) ☆ 入力フォーム ________________________________________________________ 顧客番号 [0001] 顧客氏名 [山田太郎] 受付日付 [2008/6/18] 購入商品 えんぴつ 消しゴム ボールペン [ 登録 ] _______________________________________________________________ ↓ ☆ テーブルデータ _______________________________________________________________ 0001 山田太郎 2008/6/18 えんぴつ 0001 山田太郎 2008/6/18 消しゴム 0001 山田太郎 2008/6/18 ボールペン _______________________________________________________________ 以上のように入力フォーム1画面に対してテーブルのデータが入力分発生するようにしたいです。 VBAは触れないので、できればAccessの対話式で解決できればと思っています。URL等があれば教えてください。 よろしくお願いします。(⌒ ⌒)(_ _)ぺこ
- ベストアンサー
- オフィス系ソフト
- VBAでAccessのテーブルのエクスポート・インポートをするには。
すみませんが、教えてください。 Excel+VBAで、AccessをSQL,ADO,ADOXで操作しようとしています。 a.mdbのテーブルを、b.mdbに、エクスポート(インポート)したいのですが、やり方がわからず困っています。 すみませんが、テーブル構造のみをエクスポートする方法、データを含めてエクスポートする方法を教えてください。
- ベストアンサー
- その他(データベース)
お礼
まさに、自分が知りたかったSQL構文でした 追加クエリーを作成するとはいいアイデアですね 活用させてもらいます ありがとうございました