※ ChatGPTを利用し、要約された質問です(原文:(VBA)エクセルからアクセスのレコード削除が遅い?)
(VBA)エクセルからアクセスのレコード削除が遅い?
このQ&Aのポイント
エクセルで作成した契約管理アプリで、ACCESSのデータベースにアクセスし、契約内容を管理する仕様のものがあります。
レコードのオール削除の部分が異常なほどに時間がかかるのです。たぶんコードがおかしいんでしょうけど…。
レコード数が1000近くあったりするんで、これをループで削除の作業をしようとしているので、時間がかかるのではとも思うのですが、何かもっと格段に早い方法はないのでしょうか?
(VBA)エクセルからアクセスのレコード削除が遅い?
エクセルで作成した契約管理アプリで、ACCESSのデータベース
にアクセスし、契約内容を管理する仕様のものがあります。
(複数拠点で仕様する為、エクセルだけだと一つのものでの
管理が困難なのでこのようにしています。ACCESSは共有フォルダに
おいています。)
それで、管理する工程の中で、一度データベースのレコード
すべてをオール削除したい場合があります。
「今月契約」というテーブルを、月が変わったので、レコード
が0の状態から再度、管理を始める場合等・・・。
「今月分セットアップ」というボタンで、先月分のデータを特定
の場所に保存したり、新たに契約管理を始める為に、テーブルの
データを削除したりと一連の作業を自動で行うような仕様で
作成をしました。
その中で、レコードのオール削除の部分が異常なほどに時間が
かかるのです。たぶんコードがおかしいんでしょうけど…。
コードの一部を示しておきます。
fileName = P:\契約管理DB.mdb
Set dbobj = OpenDatabase(fileName)
Set dbRecord = dbobj.OpenRecordset("今月契約", dbOpenDynaset)
dbRecord.MoveFirst
Do Until dbRecord.EOF
dbRecord.Delete
dbRecord.MoveNext
Loop
レコード数が1000近くあったりするんで、これをループで削除
の作業をしようとしているので、時間がかかるのではとも思う
のですが、何かもっと格段に早い方法はないのでしょうか?
どなたかご教授お願いいたします。
お礼
回答ありがとうございます。 できました。非常に処理が早くなりました。 こういう方法があったのでうね。勉強になりました。 本当にありがとうございました。