Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]用平台生成主子窗体录入主子记录时,点保存提示:Sub Form_Load()在对应所需名称或序数的集合中,未找到项目

nowtoo  发表于:2015-10-19 21:33:03  
复制

用平台生成的主子窗体录入主子记录时,点保存提示:Sub Form_Load()在对应所需名称或序数的集合中,未找到项目,没法保存,不录入子窗体时,可以保存,请看看是什么原因,谢谢!

 

 

Top
nowtoo 发表于:2015-10-19 22:13:57


nowtoo 发表于:2015-10-19 22:23:11

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



nowtoo 发表于:2015-10-19 22:24:41

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

 



nowtoo 发表于:2015-10-19 22:26:58

上两贴为窗体里代码,谢谢,请帮忙看下



缪炜 发表于:2015-10-20 08:18:41
把on error goto 语句注释了再运行一下,就知道哪里错了


总记录:5篇  页次:1/1 9 1 :