|  | 分類:[VB.NET/VB2005 以降]
 
 VBの開発バージョン : Visual Basic 2010
 アプリのエンドユーザーバージョン : Visual Basic 2010
 mdbバージョン : Access2000
 
 Dim ws      As DAO.Workspace             'ワークスペース
 Dim db      As DAO.Database              'データベース
 Dim rs      As DAO.Recordset             'レコードセット
 Dim rs2      As DAO.Recordset             'レコードセット
 
 'DAOの設定
 ws = DAODBEngine_definst.Workspaces(0)
 db = ws.OpenDatabase(strMdbName)
 
 ws.BeginTrans
 は、エラーなく正常にトランザクションがかかっているにもかかわらず、
 ws.CommitTransで
 「Error #3034: コミットまたはロールバックを実行するには、BeginTrans メソッドを使用してください。」
 エラーになることがあります。
 この原因について教えていただけませんでしょうか?
 
 この現象の再現性はなく、まれに発生します。
 
 シーケンスとしては、
 rsにレコード抽出結果を蓄える
 ws.BeginTrans
 
 rs.Edit()
 rsのFieldの値を書き換え
 rs.Update()
 
 rs2にレコード抽出結果を蓄える
 rs2のレコードを削除
 rs2.Close()
 
 他のテーブルにレコードを追加
 
 ここまでは、エラーが発生することはありませんでした。
 
 ws.CommitTrans
 でエラーが発生します。
 
 
 |