是完全可以的
cn是一个到数据库的联接!
cn.gegintrans '开始一个事务的处理
...
...
...
'处理完成后提交事务
cn.committrans
'事务处理过程中的出错处理
msgbox "出错信息"
'回滚到事务开始前的状态
cn.rollebacktrans

解决方案 »

  1.   

    具体可参照下面的过程Public Sub addNew()
    '*******************************************
    '   功能说明:
    '   参数说明:
    '   返回说明:
    '   调用说明:
    '*******************************************
    '   编写人:
    '   日期:
    '   修改内容:
    '   修改日期:
    '*******************************************
    On Error GoTo ErrHandler
        Dim strSql As String
        gCon.BeginTrans
        strSql = "insert into funEnval(empid,name,majtech,getway,gettime,majorwork,usestarttm,useendtm,usecomp) values('" & mvarfuEmpid & "','" & mvarfuName & "','" & mvarfuMajTech & "','" & mvarfuGetWay & "','" & mvarfuGetTime & "','" & mvarfuMajorWork & "','" & mvarfuUseStartTm & "','" & mvarfuUseEndTm & "','" & mvarfuUsecomp & "')"
       gCon.Execute strSql
       gCon.CommitTrans
    Exit Sub
    ErrHandler:
        gCon.RollbackTrans
    End Sub
      

  2.   

    一样的,你的系统中只有一个联接,在这个界面当中进行事务开始,在另一个界面当中业务结束,完全可以的,方法和我上面的说的一样,只不过cn.committrans是在另外一个界面中,昨为涵数调用!
      

  3.   

    我倒是有一个笨笨的办法~~~~:
        form1.cmdSure1
        form2.cmdSure2 
        分别是两个界面的确定按钮Private Sub cmdSure1_Click()
        flag1=ture
        if flag2=true then
            TransPart
        end if
    end sub
    Private Sub cmdSure2_Click()
        flag2=ture
        if flag1=true then
             TransPart
        end if
    end sub
    Private Function TransPart
        '两个界面的处理合并在一起,只有两个“确定”都已经按下才会执行
        '这个函数,并将事务控制加在这里
    end Function'呵呵,黑猫白猫,抓到老鼠就是好猫:)
    '继续关注更好的方法~~~~