access 2016
アクセスで以下のような処理を行っています。
Set cn = CurrentProject.Connection
cn.BeginTrans
sql = "INSERT INTO T1 " _
& "SELECT T_SEIKYU.* " _
& "FROM T_SEIKYU " _
& "WHERE riyou_no=" & tmp_riyouno _
cn.Execute sql
sql = "delete from T2 where riyou_no=" & tmp_riyouno _
cn.Execute sql
sql = "delete from T3 where riyou_no=" & tmp_riyouno _
cn.Execute sql
cn.CommitTrans
一連の処理はエラーなく終了し、T2,T3を確認したところ、対象レコードはdeleteされているのですが、T1を開こうとすると、フリーズしてしまいます。accessを強制終了の後再度立ち上げるとT2,T3のdeleteしたはずのレコードが元に戻っています。コミットがうまくいってないと思うのですが、考えられる原因は何なんでしょうか。
因みに、トランザクション処理をコメントアウトすると、T1も対象レコードが追加されています。また、テーブルはすべてsqlserverにあり、リンクテーブルです。
ストアドプロシージャで対応しようと思うのですが、今後のため、このような事象がおこった方がおれば、教えていただきたいです。クローズは少しだけ待ちたいと思います。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/08 08:18
2019/03/08 08:42