Transaction in Access

那年仲夏 提交于 2019-12-18 12:05:35

问题


I need to execute several sql clauses, inserts, updates and delete for example. How to use a transaction in Access to bind them together?

DAO is preferred.

like:

BeginTrans
Excute SQL_1
Excute SQL_2
.....
CommitTrans

Thanks!


回答1:


If you use DAO, you can use the BeginTrans and CommitTrans methods of the global DBEngine object:

Dim db As Database
Set db = CurrentDb

DBEngine.BeginTrans
db.Execute SQL_1
db.Execute SQL_2
...
DBEngine.CommitTrans



回答2:


Here is a more complete skeleton...

Dim ws As DAO.Workspace
Dim in_trans As Boolean

Sub Transaction()
On Error GoTo Trans_Error
    Set ws = DBEngine.Workspaces(0)
    in_trans=True
    ws.BeginTrans

    <do some SQL stuff; maybe use Err.Raise>

    ws.CommitTrans
    in_trans=False
Trans_Exit:
    Set ws = Nothing
    Exit Sub
Trans_Error:
    If in_trans = True Then
         ws.Rollback
    EndIf
    Resume Trans_Exit
End Sub


来源:https://stackoverflow.com/questions/5949465/transaction-in-access

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!