Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]BeginTrans、CommitTrans 和 RollbackTrans 方法

菜鸟  发表于:2016-01-26 10:56:11  
复制

各位老师,有没有这方面的例子,用于更新库厍!谢谢!

 

Top
杜超 发表于:2016-01-26 10:57:05
BeginTrans、CommitTrans 和 RollbackTrans 事务方法[Access软件网]
http://www.accessoft.com/article-show.asp?id=8907

菜鸟 发表于:2016-01-26 11:09:42

  On Error GoTo ErrorHandler

Dim strsql As String

 

  Dim cnn As ADODB.Connection

    Dim rstTmp As DAO.Recordset

    Dim blnTransBegin As Boolean

 

    Set cnn = GetADOConnection()

    '启动事务

    cnn.BeginTrans

    cnn.Execute " UPDATE tbl_Wip_Wo_Dep_Gold_Master SET Status= '" & Me![Status] & "',RecId= '" & Me![RecId] & "',RecTime= " & Format$(Me![RecTime], "\'yyyy-mm-dd hh:nn:ss\'") _

              & " WHERE GdCode='" & GdCode & "'"    '关闭记录集

 

    Set rst = New ADODB.Recordset

    strsql = "SELECT * FROM tbl_gold_in_Bom"

    rst.Open strsql, cnn, adLockOptimistic, adLockOptimistic

    Set rstTmp = CurrentDb.OpenRecordset("Temp_tbl_Wip_Wo_Dep_Gold_Detail")

    Do Until rstTmp.EOF

        cnn.Execute " UPDATE dbo.tbl_gold_Hc" _

                  & " SET zl= IsNull(dbo.tbl_gold_Hc.zl,0) + " & Nz(rstTmp!GrossWeight, 0) _

                  & " WHERE Hc = '" & Me.ToDep & "'and cs='" & rstTmp!AlloyCode & "'"

        cnn.Execute " UPDATE dbo.tbl_gold_Hc" _

                  & " SET zl= IsNull(dbo.tbl_gold_Hc.zl,0) -" & Nz(rstTmp!GrossWeight, 0) _

                  & " WHERE Hc = '" & Me.FromDep & "'and cs='" & rstTmp!AlloyCode & "'"

        rstTmp.MoveNext

    Loop

    rstTmp.Close

    cnn.CommitTrans    '提交事务

    MsgBox "数据已保存。", vbInformation, "提示"

    DoCmd.Close acForm, Me.name

ErrorHandler:        '错误处理程序

    If Not cnn Is Nothing Then

        If cnn.State = adStateOpen Then cnn.Close

    End If

    Set cnn = Nothing

    If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.Description   '提示

菜鸟 发表于:2016-01-26 11:10:30

我这样写,计算有时出现重复计算,能不能帮忙能一下,或有没有实例



总记录:3篇  页次:1/1 9 1 :