把你的代码贴出来可能是事务处理不完整    On Error GoTo err1
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    cn.Open "...."
    cn.BeginTrans
    rs.Open "update..", cn
    rs.Open "update...", cn
    cn.CommitTrans
    
err1:
    cn.RollbackTrans
    MsgBox err.Description

解决方案 »

  1.   

    代码太长了,我的事务处理是完整的正确的,我不用update方法,我用update语句可以,但是
    只能是一个表一个表的更新数据。我用的update语句类似下面的:
    sql="update 表A set...where...
    conn.execute sql
    sql="update 表B set...where...
    conn.execute sql
    按上面的方法分别更新,也是放在同样的事务处理里面,就可以了,不知道为什么不能用
    update方法同时更新两个表。另外我连接数据库用的是默认的用户sa,没有密码的。
      

  2.   

    是这样的 的确不能用update方法同时更新两个表
      

  3.   

    我直接在sql语句中建立关联不行吗?
      

  4.   

    我以前用VB ADO处理事务的时候是这样:把 语句合成为一个语句再用begin和commit
    sql="update 表A set...where...
     
    sql=sql & vbcrlf & "update 表B set...where...
    conn.execute sql
      

  5.   

    把两个表用SQL语句连成一体不可以么???
      

  6.   

    你可在SQL中做一个TRIGGER,做级联更新不就行了吗?
      

  7.   

    这个问题我已解决了,分开更新两个表示肯定行的,但是我有个疑问:在sql中是不是不可以象在access中那样用select..from...where...连接多个表查出个记录集,然后在这个记录集中更改多个表中的字段,再用.update方法更新数据库啊?
      

  8.   

    用str=select * from table,然后Adodc1.RecordSource=str, Adodc1.Refresh... .Adodc1.Recordset.Update, Adodc1 .Refresh 也许可以,你试试看!