【VBA】数据库中的回滚数据

很多时候我们执行的SQL语句或者其他对数据库的操作都会因为各种问题报错,有时候报错的时候,已经有数据写入到数据库了,这个时候我们就需要将写入的数据给删除掉;而有时候执行删除操作后,其他的操作导致后面执行错误,我们又想还原已经删除的数据。
我们希望在报错的时候能够还原到某个点,是否可以这么操作呢?在数据库中,有数据回滚的概念,可以参考下面代码:

'事务回滚
Sub AdoRollback()
    Dim cn As Object
    Dim rs As Object
    
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
    
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =C:\Users\admin\Desktop\dbtest.accdb"
	'SQLSERVER 插入新数据
    Sql = "select * from xx where 0"
    rs.Open Sql, cn, 1, 3
    
    cn.BeginTrans
    With rs
        For i = 1 To 100
            .addnew
            .Fields("f1") = i
            .Fields("f2") = 1
            .Update
        Next i
    End With
    'committrans是确定执行事务,rollbacktrans是不执行事务
    'cn.CommitTrans
    cn.RollbackTrans
End Sub
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值