質問: accessVBAです。
回答: DAO.recordsetを更新後、Updateメソッドを実行しないでDelete処理に移行している。あるいはDelete後、Updateメソッドを実行しないで更新処理に移行しているとかはありませんか? Updateメソッドを呼び出さないと実際のデータベースには書き込まれないので(or書き込まれなかったはずなので)、そのあたりで動作があやふやになっているのでは? レコードを更新したつもりがデータベースに書き込まれていないので、更新前のレコードに対するWhere条件でたまたまマッチしたレコードが削除されているので「稀に消える」ように見えるのでは? DAOもトランザクションは使えたはずですので、動作を正確にするためにTransactionの利用を検討されてはと思います。