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
Set cnn = CurrentProject.Connection
cnn.BeginTrans: blnTransBegin = True
strSQL = "SELECT * FROM [个险长期险业务登记表] WHERE [投保单号]=" & SQLText(Me![投保单号])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
If rst.EOF Then
rst.AddNew
End If
rst![交单登记日期] = Me![交单登记日期]
rst![销售渠道代码] = Me![销售渠道代码]
rst![投保单号] = Me![投保单号]
rst![投保人] = Me![投保人]
rst![被保人] = Me![被保人]
rst![营销员代码] = Me![营销员代码]
rst![备注] = Me![备注]
rst![投保单状态] = Me![投保单状态]
rst![登记操作员] = Me![登记操作员]
rst![撤退单时间] = Me![撤退单时间]
rst![撤退单操作员] = Me![撤退单操作员]
rst.Update
rst.Close
strSQL = "SELECT * FROM [个险长期险业务登记明细表] WHERE [投保单号]=" & SQLText(Me![投保单号])
Set rst = OpenADORecordset(strSQL, adLockOptimistic, cnn)
Do Until rst.EOF
rst.Delete
rst.MoveNext
Loop
Set rstTmp = CurrentDb.OpenRecordset("TMP_个险长期险业务登记明细表")
Do Until rstTmp.EOF
rst.AddNew
rst![投保单号] = Me![投保单号]
rst![险种代码] = rstTmp![险种代码]
rst![交费期间] = rstTmp![交费期间]
rst![保费] = rstTmp![保费]
rst![件数] = rstTmp![件数]
rst![备注] = rstTmp![备注]
rst.Update
rstTmp.MoveNext
Loop
rst.Close
rstTmp.Close
cnn.CommitTrans: blnTransBegin = False
Form_frm个险长期险业务登记.RefreshDataList
MsgBoxEx LoadString("Saved Successfully."), vbInformation
' If Me.DataEntry Then
' ClearControlValues Me
' CurrentDb.Execute "DELETE FROM [TMP_个险长期险业务登记明细表]"
' 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
Private Sub btnCancel_Click()
On Error Resume Next
DoCmd.Close acForm, Me.Name, acSaveNo
End Sub
Option Compare Database
Option Explicit
Private Sub Form_Load()
On Error GoTo ErrorHandler
Dim strSQL As String
Dim cnn As Object 'ADODB.Connection
Dim rst As Object 'ADODB.Recordset
Dim rstTmp As Object 'DAO.Recordset
ApplyTheme Me
LoadLocalLanguage Me
CurrentDb.Execute "DELETE FROM [TMP_个险长期险业务登记明细表]"
Me.sfrDetail.Requery
If IsNull(Me.OpenArgs) Then
Me.DataEntry = True
End If
If Me.DataEntry Then
GoTo ExitHere
End If
Me.btnSave.Enabled = Me.AllowEdits
Set cnn = CurrentProject.Connection
strSQL = "SELECT * FROM [个险长期险业务登记表] WHERE [投保单号]=" & SQLText(Me.OpenArgs)
Set rst = OpenADORecordset(strSQL, , cnn)
Me![交单登记日期] = rst![交单登记日期]
Me![销售渠道代码] = rst![销售渠道代码]
Me![投保单号] = rst![投保单号]
Me![投保人] = rst![投保人]
Me![被保人] = rst![被保人]
Me![营销员代码] = rst![营销员代码]
Me![备注] = rst![备注]
Me![投保单状态] = rst![投保单状态]
Me![登记操作员] = rst![登记操作员]
Me![撤退单时间] = rst![撤退单时间]
Me![撤退单操作员] = rst![撤退单操作员]
rst.Close
strSQL = "SELECT * FROM [个险长期险业务登记明细表] WHERE [投保单号]=" & SQLText(Me![投保单号])
Set rst = OpenADORecordset(strSQL, , cnn)
Set rstTmp = CurrentDb.OpenRecordset("TMP_个险长期险业务登记明细表")
Do Until rstTmp.EOF
rstTmp.Delete
rstTmp.MoveNext
Loop
Do Until rst.EOF
rstTmp.AddNew
rstTmp![ID] = rst![ID]
rstTmp![投保单号] = rst![投保单号]
rstTmp![险种代码] = rst![险种代码]
rstTmp![交费期间] = rst![交费期间]
rstTmp![保费] = rst![保费]
rstTmp![备注] = rst![备注]
rstTmp.Update
rst.MoveNext
Loop
rst.Close
rstTmp.Close
Me.sfrDetail.Requery
ExitHere:
Set rst = Nothing
Set cnn = Nothing
Set rstTmp = Nothing
Exit Sub
ErrorHandler:
RDPErrorHandler Me.Name & ": Sub Form_Load()"
Resume ExitHere
End Sub
把on error goto 语句注释了再运行一下,就知道哪里错了
总记录:5篇 页次:1/1 9 1 :