アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで作成した契約管理アプリで、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近くあったりするんで、これをループで削除
の作業をしようとしているので、時間がかかるのではとも思う
のですが、何かもっと格段に早い方法はないのでしょうか?

どなたかご教授お願いいたします。

A 回答 (1件)

> レコード数が1000近くあったりするんで、これをループで削除


> の作業をしようとしているので、時間がかかるのではとも思う
> のですが、何かもっと格段に早い方法はないのでしょうか?

Set dbobj = OpenDatabase(fileName)
dbobj.Execute "DELETE FROM 今月契約", dbFailOnError

で、どうでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
できました。非常に処理が早くなりました。
こういう方法があったのでうね。勉強になりました。
本当にありがとうございました。

お礼日時:2007/03/10 20:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!