テーブルへの書き込み処理中でトランザクションカウンターが規定値の9500を超えた場合に出るエラーみたいです。
ロックしているレコードが多すぎるのが原因なので、書き込み処理を済ませてしまえば良いとのこと。
「Do Until ~ Loop」の途中で書き込み処理を一旦完了させることでエラーを回避できました。
以下はDAOでの記述です。
まず、処理件数を格納するcnt変数を定義
Dim cnt as long
「Do Until ~ Loop」処理の前で、
cnt = 0
DBEngine.BeginTrans
を書いておき、
「Do Until ~ Loop」処理の.MoveNextの次に、
'トランザクションコミット処理
cnt = cnt + 1
If cnt = 5000 Then
DBEngine.CommitTrans
DBEngine.BeginTrans
cnt = 0
End If
をいれてトランザクション処理が5000に達するごとにコミット(書き込み処理を完了)させる。
最後にレコードセットを.Closeする前に、
DBEngine.CommitTrans
を書いて完了。