問題:
   A,B兩用戶同時讀取了記錄R,A user按編輯按鈕後,在沒有取消或Save之前, B user應不能按編輯按鈕或save 記錄都無效,請各位大蝦幫忙!thanks!

解决方案 »

  1.   

    加个锁 lock吧
    lock=1 '用户已在操作,当前用户操作无效
    lock=0 '可以进行操作具体的代码需要你贴出来,让大家看着改呀~!
      

  2.   

    代碼如下,請大家幫幫忙想個法子,
    On Error GoTo ERR_DSP
        Adocnn.BeginTrans
        header("wsp_cde") = Settext(Txtwsp_cde.Text)
        header("wsp_des") = Settext(Txtwsp_des.Text)
        header("wsp_rem") = Settext(Txtwsp_rem.Text)
        header("wsp_lst_upu") = Settext(Txtwsp_lst_upu.Text)
        header("wsp_lst_upd") = SetDate(Txtwsp_lst_upd.Text)
        header.Update
        msg_infbox DiaMsg("001")
        If header.RecordCount > 0 Then
            Call Dsp_Rec
            Call Notempty_record_buttons
        Else
            Call ClearFieldValue
            Call Empty_record_buttons
        End If
        Adocnn.CommitTrans
        Exit Sub
    ERR_DSP:
        Adocnn.RollbackTrans
        msg_errbox Err.Description
        Call cmdcancel_Click
      

  3.   

    1.首先启动事务处理
         Conn.BeginTrans
    2.给行加锁(with (rowlock)
    3.执行保存功能
    4.通过Err.Number 来判断是否成功, 成功则就提交事务,不成功则就回滚事务  Dim CN   As New ADODB.Connection                '定义数据库的连接
    Dim Rs   As New ADODB.Recordset
    Private Sub Form_Load()    CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"    CN.Open
        '首先启动事务处理
        CN.BeginTrans
        '给行加锁(with (rowlock)
        Rs.Open "select * from employees WITH (ROWLOCK)  where employeeid=1", CN, adOpenDynamic, adLockPessimisticEnd Sub
    Private Sub Command1_Click()
        '执行保存功能
        Rs.Fields("lastname") = "Davolio1"
        Rs.UpdateEnd SubPrivate Sub Command2_Click()
        '通过Err.Number 来判断是否成功, 成功则就提交事务,不成工则就回滚事务
    On Error GoTo Err_Proc
         CN.CommitTrans
         Exit Sub
    Err_Proc:
        CN.RollbackTrans    '回滚事务
        MsgBox "保存失败!", 48, "提示"
        Exit SubEnd Sub
    这样,在点击了Command1之后,就锁定了,其它用户就不能操作这个数据,直到点击Command2提交事务之后!
      

  4.   

    没这么复杂,使用Conn.Mode就可以避免其它用户写入数据dim conn as new adodb.Connection...conn.Mode = adModeShareDenyWrite说明:adModeShareDenyWrite Prevents others from opening connection with write permissions. 其它参数请查MSDN.这样处理过后,当前打开的表,其它用户是无法写入数据的。