Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1369|回复: 1

保存失败,对象关闭时,不允许操作

[复制链接]
发表于 2016-4-7 16:56 | 显示全部楼层 |阅读模式

代码如下:
Private Sub 保存_Click()
    On Error GoTo hhh
    Dim mmm As Integer, i As Integer
    '判断凭证号是否缺失
    If Mysh.Range("B2").Value = "" Then
        MsgBox "请输入凭证号!", vbExclamation, "警告"
        Mysh.Range("B2").Activate
        Exit Sub
    End If
    '判断附单据数量是否缺失
    If Mysh.Range("B3").Value = "" Then
        MsgBox "请输入附单据数量!", vbExclamation, "警告"
        Mysh.Range("B3").Activate
        Exit Sub
    End If
    '判断现金流量分类编码是否缺失
    If Mysh.Range("D1").Value <> "转" Then
        If Mysh.Range("B4").Value = "" Then
            MsgBox "请输入现金流量分类编码!", vbExclamation, "警告"
            Mysh.Range("B4").Activate
            Exit Sub
        End If
    End If
    '判断摘要是否缺失
    If Mysh.Range("A7").Value = "" Then
        MsgBox "请输入摘要!", vbExclamation, "警告"
        Mysh.Range("A7").Activate
        Exit Sub
    End If
    '判断总账科目是否缺失
    If Mysh.Range("B7").Value = "" Then
        MsgBox "请输入总账科目!", vbExclamation, "警告"
        Mysh.Range("B7").Activate
        Exit Sub
    End If
    '判断金额是否缺失
    If Mysh.Range("D7").Value = "" Then
        MsgBox "请输入金额!", vbExclamation, "警告"
        Mysh.Range("D7").Activate
        Exit Sub
    End If
    If Left(Mysh.Range("D1").Value, 1) = "银" Then
        '判断开户行是否缺失
        If Mysh.Range("D2").Value = "" Then
            MsgBox "请输入开户行!", vbExclamation, "警告"
            Mysh.Range("D2").Activate
            Exit Sub
        End If
        '判断结算方式是否缺失
        If Mysh.Range("D3").Value = "" Then
            MsgBox "请输入结算方式!", vbExclamation, "警告"
            Mysh.Range("D3").Activate
            Exit Sub
        End If
        '判断结算号码是否缺失
        If Mysh.Range("D4").Value = "" Then
            MsgBox "请输入结算号码!", vbExclamation, "警告"
            Mysh.Range("D4").Activate
            Exit Sub
        End If
    End If
    '向数据库中添加记账凭证数据
    mmm = Mysh.Range("B65536").End(xlUp).Row
    If Left(Mysh.Range("D1").Value, 1) <> "转" Then
        rsData.AddNew
        rsData.Fields("日期") = Mysh.Range("B1").Value
        rsData.Fields("凭证类别") = Mysh.Range("D1").Value
        rsData.Fields("凭证号") = Mysh.Range("B2").Value
        rsData.Fields("附件") = Mysh.Range("B3").Value
        rsData.Fields("摘要") = Mysh.Range("A7").Value
        rsData.Fields("总账科目") = mypzName
        rsData.Fields("明细科目") = Mysh.Range("D2").Value
        If Left(Mysh.Range("D1").Value, 1) = "现" Then
            rsData.Fields("科目编码") = "1001"
        ElseIf Left(Mysh.Range("D1").Value, 1) = "银" Then
            rsData.Fields("科目编码") = "1002"
        End If
        sumt = 0
        For i = 7 To mmm
            sumt = sumt + Mysh.Range("D" & i).Value
        Next i
        If Left(MultiPage1.SelectedItem.Caption, 1) = "收" Then
            rsData.Fields("借方金额") = sumt
        ElseIf Left(MultiPage1.SelectedItem.Caption, 1) = "付" Then
            rsData.Fields("贷方金额") = sumt
        End If
        rsData.Fields("现金编码") = Mysh.Range("B4").Value
            rsData.Fields("开户行") = Mysh.Range("D2").Value
            rsData.Fields("结算方式") = Mysh.Range("D3").Value
            rsData.Fields("结算号码") = Mysh.Range("D4").Value
        rsData.Update
    End If
    For i = 7 To mmm
        rsData.AddNew
        rsData.Fields("日期") = Mysh.Range("B1").Value
        rsData.Fields("凭证类别") = Mysh.Range("D1").Value
        rsData.Fields("凭证号") = Mysh.Range("B2").Value
        rsData.Fields("附件") = Mysh.Range("B3").Value
        rsData.Fields("摘要") = Mysh.Range("A7").Value
        rsData.Fields("总账科目") = Mysh.Range("B" & i).Value
        rsData.Fields("明细科目") = Mysh.Range("C" & i).Value
        rsData.Fields("科目编码") = Mysh.Range("G" & i).Value
        If Left(MultiPage1.SelectedItem.Caption, 1) = "收" Then
            rsData.Fields("贷方金额") = Mysh.Range("D" & i).Value
        ElseIf Left(MultiPage1.SelectedItem.Caption, 1) = "付" Then
            rsData.Fields("借方金额") = Mysh.Range("D" & i).Value
        ElseIf Left(MultiPage1.SelectedItem.Caption, 1) = "转" Then
            rsData.Fields("借方金额") = Mysh.Range("D" & i).Value
            rsData.Fields("贷方金额") = Mysh.Range("E" & i).Value
        End If
        rsData.Fields("现金编码") = Mysh.Range("B4").Value
        rsData.Fields("开户行") = Mysh.Range("D2").Value
        rsData.Fields("结算方式") = Mysh.Range("D3").Value
        rsData.Fields("结算号码") = Mysh.Range("D4").Value
        rsData.Update
    Next i
    '将页面清零
    Call 填单_Click
    Exit Sub
hhh:
    MsgBox "保存出现错误!" & vbCrLf & vbCrLf & "错误为:" & Err.Description, _
        vbOKOnly + vbCritical, "错误信息"
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-4-7 19:39 | 显示全部楼层
同意楼上意见,这么长的代码,谁有耐心读下去呀。如果直接传附件,经调试,很快找到问题在哪里。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 21:55 , Processed in 0.231706 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表