用VB+ACCESS,要同时向几个表写入数据,若分别执行SQL语句,可能存在先操作的表成功写入,但其中一个在写入时出错,那么对其以后的表的操作也就无法进行了(这将导致先前表中数据已更改,而后面的表数据未能更改),如何保证所有的表同时操作成功(即向所有表写入正确数据),要么都操作失败(不向任何表写入数据)。

解决方案 »

  1.   

    用事务机制。
    BeginTrans
    ....
    CommitTrans '成功RollBackTrans '失败
      

  2.   

    '在保存时使用事务:
    private sub cmdsave_click()
    on error goto errsave
        conn.begintrans    '开启事务
        conn.execute "insert into ..."
        conn.execute "insert into..."
        conn.execute "update ..."
        conn.committrans   '提交事务
        exit sub
    '错误处理
    errsave:
        conn.rollbacktrans    '回滚事务
        msgbox "保存失败!",48,"提示"
        exit sub
    end sub