gpt4 book ai didi

vba - 如果您使用 .BeginTrans 而不使用 .CommitTrans 或 .Rollback 会发生什么

转载 作者:行者123 更新时间:2023-12-04 22:35:00 24 4
gpt4 key购买 nike

如果在 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 中打开表 任何尝试编辑两条记录中的任何一条都会导致“哔”声和记录选择器上的“无条目”图标。

noEntry

尝试添加新记录时遇到“无法更新”错误:

couldNotUpdate

因此,事务内所做的更改不会被写入,表将处于锁定状态,直到连接关闭(或事务被清除)。由于我的事务基于默认的 Access 连接 (DBEngine.Workspaces(0)),这意味着要么关闭并重新打开 Access,要么运行以下命令:

Sub transRollback()
DBEngine.Workspaces(0).Rollback
End Sub

关于vba - 如果您使用 .BeginTrans 而不使用 .CommitTrans 或 .Rollback 会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com