前台是:VB6,ADODDC
後台:sql2000
Private Sub Command1_Click() --新增
Adodc_header_general.Recordset.AddNew
End SubPrivate Sub Command2_Click()  ---保存<<確定>>
Adodc_header_general.Recordset.Update
End Sub問題:我想一按下新增,則輸入的數據在SQL裡也暫時跟著新增。待按下<<確定>>後才正式保存到SQL.這如何處理呢???
謝謝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    BEGING TRANS
    .
    .
    .
    COMMIT               'IF YOU CLICK "確定"  THEN COMMIT THE TRANSACTION
    ROLLBACK TRAN       'IF YOU CLICK "取消"  THEN ROLLBACK
      

  2.   

    謝謝 leolan(leolan)是不是這樣:
    Private Sub Command1_Click() --新增
    Adodc_header_general.Recordset.AddNew
    Adodc_header_general.Recordset.ActiveConnection.BeginTrans
    End SubPrivate Sub Command2_Click()  ---保存<<確定>>
    Adodc_header_general.Recordset.Update
    Adodc_header_general.Recordset.ActiveConnection.CommitTrans
    End Sub但這樣做還是等按了<<確定>>後,SQL才保存。
    我要的是還沒<<確定>>就開始寫入SQL,只是等<<確定>>後才下正式寫入
      

  3.   

    其實我是想解決以下問題,只是還沒人能解決!!前台:是VB6.0,tdbgrid6.0
    後台:表頭(va02)與表身(va03)在SQL建立關聯,那麼前台怎樣寫才發揮作用?
    以下程式在不建立關聯是沒問題的。但建立關聯後就表身就不能新增數據了。原因是後台表頭沒能寫入數據,為什麼呢?是不是我程式的事務沒寫好,致使表頭沒能寫入數據?
    主要問題就是:表頭在事務中的為什麼沒寫到SQL?Private Sub Command_add_Click() ----新增
    Adodc_header_general.Recordset.AddNew
    Adodc_header_general.Recordset.ActiveConnection.BeginTrans  ---開始事務
    Adodc_body_general.Recordset.ActiveConnection.BeginTransIf Adodc_header_general.Recordset.eof = False Then  ---保持表頭表身一致
    Adodc_body_general.RecordSource = "select va03.* from va03  with (nolock) where va03.va0301='" & Adodc_header_general.Recordset.Fields("va0201").Value & "'"
    Adodc_body_general.Refresh
    End IfEnd SubPrivate Sub Command_ok_Click()  ----保存

    If Module_sys.to_update(Adodc_header_general.Recordset) = False Then
    Adodc_header_general.Recordset.ActiveConnection.RollbackTrans
    Adodc_body_general.Recordset.ActiveConnection.RollbackTrans
    Exit Sub
    End If
    Adodc_body_general.Recordset.ActiveConnection.Execute "update va03 set va0301='" & db_text_box_general(0).Text & "'  where va0301='" & rndNumber & "' OR va0301='" & db_text_box_general(0).Text & "' "Adodc_header_general.Recordset.ActiveConnection.CommitTrans
    Adodc_body_general.Recordset.ActiveConnection.CommitTransEnd Sub
    Public Function to_update(adodb_recordset As ADODB.Recordset) As Boolean   --- 函數
    On Error GoTo error_process
    adodb_recordset.Update
    to_update = True
    Exit Function
    error_process:
    VBA.Interaction.MsgBox "其他用戶正在修改此記錄,您不能修改!" & ":" & Err.Description, vbOKOnly + vbInformation, "系統提示"
    '    MsgBox "系統提示" & ":" & Err.Description & "替換不成功,請聯系技術員!"
    to_update = False
    End Function