@孔凡旺 上面的代码就是写在保存代码里的。
Private Sub btnSave_Click()
On Error GoTo ErrorHandler
Dim strWhere As String
Dim strSQL As String
Dim cnn As Object 'ADODB.Connection
Dim rst As Object 'ADODB.Recordset
Dim rstTmp As Object 'DAO.Recordset
Dim blnTransBegin As Boolean
If Not CheckRequired(Me) Then Exit Sub
If Not CheckTextLength(Me) Then Exit Sub
If Not CheckRequired(Me.sfrDetail) Then Exit Sub
strWhere = "[单据编号]<>" & SQLText(Me![单据编号]) & " AND [单据编号]=" & SQLText(Me![单据编号])
If DCount("*", "tbl_高压管销售清单", strWhere) > 0 Then
MsgBoxEx "【单据编号】已存在,不允许重复录入。", vbCritical
Exit Sub
End If
strWhere = "[单据编号]<>" & SQLText(Me![单据编号]) & " AND [销货单号]=" & SQLText(Me![销货单号])
If DCount("*", "tbl_高压管销售清单", strWhere) > 0 Then
MsgBoxEx "【销货单号】已存在,不允许重复录入。", vbCritical
Exit Sub
End If
Set cnn = CurrentProject.Connection
cnn.BeginTrans: blnTransBegin = True
strSQL = "SELECT * FROM [tbl_高压管销售清单] WHERE [单据编号]=" & SQLText(Me![单据编号])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
If rst.EOF Then
rst.AddNew
rst![单据编号] = GetAutoNumber("高压管销货单号")
rst![审核状态] = "待审核"
rst![制单人] = [Forms]![sysFrmmain]![Username]
rst![制单日期] = Now()
End If
rst![销货单号] = Me![销货单号]
rst![供应商] = Me![供应商]
rst![客户] = Me![客户]
rst![审核人] = Me![审核人]
rst![审核日期] = Me![审核日期]
rst.Update
Me![单据编号] = rst![单据编号]
rst.Close
strSQL = "SELECT * FROM [tbl_高压管销售商品明细] WHERE [单据编号]=" & SQLText(Me![单据编号])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
Do Until rst.EOF
rst.Delete
rst.MoveNext
Loop
Set rstTmp = CurrentDb.OpenRecordset("TMP_tbl_高压管销售商品明细")
Do Until rstTmp.EOF
rst.AddNew
rst![单据编号] = Me![单据编号]
rst![序号] = rstTmp![序号]
rst![送货日期] = rstTmp![送货日期]
rst![送货单号] = rstTmp![送货单号]
rst![品名] = rstTmp![品名]
rst![规格型号] = rstTmp![规格型号]
rst![订单号码] = rstTmp![订单号码]
rst![订单项目] = rstTmp![订单项目]
rst![单位] = rstTmp![单位]
rst![数量] = rstTmp![数量]
rst![不含税单价] = rstTmp![不含税单价]
rst![不含税金额] = rstTmp![不含税金额]
rst![含税金额] = rstTmp![含税金额]
rst![含税单价] = rstTmp![含税单价]
rst![出货类别] = rstTmp![出货类别]
rst.Update
rstTmp.MoveNext
Loop
rst.Close
rstTmp.Close
cnn.CommitTrans: blnTransBegin = False
If Form_SysFrmMain.sfrChild.SourceObject = "frm_高压管销售清单" Then
Form_frm_高压管销售清单.RefreshDataList
MsgBoxEx LoadString("Saved Successfully."), vbInformation, , 1000
WriteOperationLog "高压管销售清单", "高压管销售清单"
Me.sfrDetail.Requery
End If
' If Me.DataEntry Then
' ClearControlValues Me
' CurrentDb.Execute "DELETE FROM [TMP_tbl_高压管销售商品明细]"
' Me.sfrDetail.Requery
' Else
' DoCmd.Close acForm, Me.Name, acSaveNo
' End If
ExitHere:
Set rst = Nothing
Set cnn = Nothing
Set rstTmp = Nothing
Exit Sub
ErrorHandler:
If blnTransBegin Then
cnn.RollbackTrans
blnTransBegin = False
End If
RDPErrorHandler Me.Name & ": Sub btnSave_Click()"
Resume ExitHere
End Sub