ACCESSへの更新に関して

解決


asami  2012-01-19 09:08:57  No: 147458  IP: [192.*.*.*]

初歩的な質問で申し訳ありませんが、教えて下さい。

現在、VB2008にて開発を行っていて、VB2008からACCESSに接続し、
ACCESS側のテーブルを更新したいと考えています。

接続方法はADO接続で接続し、INSERT文を用いて更新までできるようになりましたが、
大量のデータを挿入したい為、他に何か方法がないかと考えています。

大量のデータというのは、VB2008側でMySQLのテーブルを検索し、その結果を
ACCESSに吐き出すという事を考えている為、INSERT文でループをまわすというのも
綺麗ではない為、他に方法を探しています。

何か他に良い挿入方法はありますでしょうか?

VB2008側のデータの持ち方としてはこだわりはなく、データセット、配列、なんでも
良いと考えています。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2012-01-19 13:30:00  No: 147459  IP: [192.*.*.*]

> INSERT文でループをまわすというのも

VB 側での加工が必要ないのであれば、ODBC 経由で MySQL に接続させて

INSERT INTO ローカル表 (列1, 列2, …)
SELECT 列1, 列2, …
FROM [ODBC;…].MySQLの表
WHERE 検索条件…

のようなクエリを実行するのが良いでしょう。
INSERT 処理が一回で済むため、効率よく取り込めます。


一方、加工条件が複雑であり、VB を介して一行ずつ処理する必要がある場合には、
INSERT を繰り返すのではなく、「DAO」の AddNew メソッドの利用をお奨めします。
多くの場合、ADO.NET や ADODB よりも効率良く登録できます。
(この場合、dbOpenTable でテーブルタイプのRecordsetを開く必要があります)

編集 削除
asami  2012-01-19 13:49:21  No: 147460  IP: [192.*.*.*]

魔界の仮面弁士様、ありがとうございます!

ご指摘頂いた通り、加工条件が複雑である為、Add Newメゾットを
使うようにしました。

本当にありがとうございました!!

編集 削除