VBAについて質問です。 見様見真似でExcelからAccessの更新を行いたいと思い作成していたところ エラーなどは表示されませんでしたが、Accessに書き加えられませんでした。

Visual Basic | Microsoft Access88閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

0

ThanksImg質問者からのお礼コメント

迅速なご回答ありがとうございます。 貼付いただいたURLを参考にしたところ処理速度がかなり早くAccessに更新を行うことができました。 今回は素早くご回答いただいた m3_maki0さんをベストアンサーにさせていただきます。

お礼日時:10/15 9:45

その他の回答(1件)

0

>Accessの更新を行いたい といっている割に、示されているコードは Accessのデータを参照(Select)してセルに入れる処理になってしまっている から更新が行われないのです。 因みに 示されているコードは正しいのでTestTableにデータが入っていれば 正しく表示されると思います。 で、 Accessの更新を行いたいのなら InsertやUpdate文を作成して実行する必要があります 一例として 転送マクロをコピーして ----------------------------------- mySQL = "SELECT * FROM TestTable" から adoRS.MoveNext Loop ------------------------------------ を 下記に書き換えれば 社員番号=100 社員名称=山田太郎 のレコードがAccessDBに追加されるマクロとなる筈です 結果は転送マクロを実行すれば確認できる筈です。 ただ このままでは、大量のデータ(レコード)を追加/更新する場合 処理時間が長くなってしまうので少し工夫が必要になります。 それについては別途質問すればいいと思います -------------------------------------------- ' Insert文を作成する mySQL = "INSERT INTO TestTable (社員番号, 社員名称) VALUES (100, '山田太郎')" On Error GoTo ACSERR adoCON.BeginTrans adoRS.Open mySQL, adoCON, adOpenDynamic 'SQL文の実行 adoCON.CommitTrans 'コミットする GoTo RestP ACSERR: adoCON.RollbackTrans ' エラーが起こったのでロールバックする Resume RestP RestP: 'On Error Resume Next --------

ご回答及び丁寧な解説ありがとうございます。 Access⇒Excelに書き換えが行われているとは考えておりませんでした。 また例文をご教授いただきありがとうございます。