Private Sub txt_thdid_LostFocus()
Dim rs As New ADODB.Recordset
Set rs = cnn.Execute("select * from thd where thd_thdid='" & txt_thdid.Text & "'")
If rs.EOF = False Then   With Adodc1
           .ConnectionString = constr
           .RecordSource = "select * from thdmx where thdmx_thdid='" & txt_thdid.Text & "'"
   End With
   
   'list thdmx
   Set txt_wlid.DataSource = Adodc1
   txt_wlid.DataField = "thdmx_wlid"
   Set txt_xqsl.DataSource = Adodc1
   txt_xqsl.DataField = "thdmx_xqsl"
   Set txt_xqdw.DataSource = Adodc1
   txt_xqdw.DataField = "thdmx_xqdw"
   Set txt_sfsl.DataSource = Adodc1
   txt_sfsl.DataField = "thdmx_sfsl"
   Set txt_sfdw.DataSource = Adodc1
   txt_sfdw.DataField = "thdmx_sfdw"
   Set txt_mxbz.DataSource = Adodc1
   txt_mxbz.DataField = "thdmx_bz"....
end sub
Private Sub Cmd_addmx_Click()
Dim rs As New ADODB.Recordset
If txt_wlid.Text = "" Then
   MsgBox "请输入物料代码!"
Else
   Set rs = cnn.Execute("select * from thdmx where thdmx_thdid='" & txt_thdid.Text & "' and thdmx_wlid='" & txt_wlid.Text & "'")
   If rs.EOF = False Then
      MsgBox "提货单上已有该物料。请做修改!"
   Else
      cnn.BeginTrans
      cnn.Execute "insert into thdmx values ('" & txt_thdid.Text & "','" & txt_wlid.Text & "','" & txt_xqsl.Text & "','" & txt_xqdw.Text & "','','','" & txt_mxbz.Text & "','" & txt_khid.Text & "',null,null)"
      cnn.CommitTrans
    
      txt_wlid.Text = ""
      txt_xqsl.Text = ""
      txt_xqdw.Text = ""
      txt_sfsl.Text = ""
      txt_sfdw.Text = ""
      txt_mxbz.Text = ""
      
      Adodc1.Refresh
 
   End If
End IfEnd Sub当输入thdid后(该文本框失去焦点后),adodc绑定thdmx表,插入记录后要把记录都列出来。但在插入记录的过程中有问题。

解决方案 »

  1.   

    把这段代码:
    cnn.BeginTrans
          cnn.Execute "insert into thdmx values ('" & txt_thdid.Text & "','" & txt_wlid.Text & "','" & txt_xqsl.Text & "','" & txt_xqdw.Text & "','','','" & txt_mxbz.Text & "','" & txt_khid.Text & "',null,null)"
          cnn.CommitTrans改为:
         
        Set cnn = New ADODB.Connection
        cnn.CursorLocation = adUseClient
        cnn.ConnectionString = mCnnString   '你的连接字符串
        cnn.Open
        cnn.BeginTrans   '开始事务处理
        cnn.Execute "insert into thdmx values ('" & txt_thdid.Text & "','" & txt_wlid.Text & "','" & txt_xqsl.Text & "','" & txt_xqdw.Text & "','','','" & txt_mxbz.Text & "','" & txt_khid.Text & "',null,null)"
        If CBool(cnn.State = adStateExecuting) Then  '如果事务还未执行完成
            cnn.Cancel        '取消执行命令
            cnn.RollbackTrans '回滚事务以便执行其他事务
        Else
            cnn.CommitTrans   '提交事务以便执行其他事务
        End If
        cnn.Close