ACCESSへの更新に関して

解決


asami  2012-01-19 18:08:57  No: 147458

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

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

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

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

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

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

よろしくお願いします。


魔界の仮面弁士  2012-01-19 22:30:00  No: 147459

> 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 22:49:21  No: 147460

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加