作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果在 Access VBA 中使用 .BeginTrans 和 .Execute 然后在 .CommitTrans 或 .Rollback 之前退出代码会发生什么。
最佳答案
Daniel 的评论几乎概括了这一点。当我运行以下代码时...
Sub noCommit()
Dim cdb As DAO.Database, rst As DAO.Recordset
Set cdb = CurrentDb
Set rst = cdb.OpenRecordset("tblSampleData", dbOpenTable)
DBEngine.Workspaces(0).BeginTrans
rst.Edit
rst!Item = "Item1amended"
rst.Update
'' no Commit and no Rollback
End Sub
...然后在数据 TableView 中打开表 任何尝试编辑两条记录中的任何一条都会导致“哔”声和记录选择器上的“无条目”图标。
尝试添加新记录时遇到“无法更新”错误:
因此,事务内所做的更改不会被写入,表将处于锁定状态,直到连接关闭(或事务被清除)。由于我的事务基于默认的 Access 连接 (DBEngine.Workspaces(0)
),这意味着要么关闭并重新打开 Access,要么运行以下命令:
Sub transRollback()
DBEngine.Workspaces(0).Rollback
End Sub
关于vba - 如果您使用 .BeginTrans 而不使用 .CommitTrans 或 .Rollback 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786117/
如果在 Access VBA 中使用 .BeginTrans 和 .Execute 然后在 .CommitTrans 或 .Rollback 之前退出代码会发生什么。 最佳答案 Daniel 的评论几
我是一名优秀的程序员,十分优秀!