设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2053|回复: 6
打印 上一主题 下一主题

[模块/函数] 求助:运行调试代码有问题,找不到错处,请帮忙

[复制链接]
跳转到指定楼层
1#
发表于 2012-7-16 18:00:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   
    If Len(Nz(Me.txtSVsn)) = 0 Then
   
        MsgBoxShow "“受监编号”未填写完整!!", "信息未填写"
        Exit Sub
    End If
               
    If Len(Nz(Me.cmbDistrict)) = 0 Then             '检视“监督区域”的输入数据
      
        MsgBoxShow "请输入“监督区域”!!", "信息未填写"
        Exit Sub
    End If
        
    If Len(Nz(txtSCompName)) = 0 Then          '检视“单位名称”的输入数据
        
        MsgBoxShow "请输入“单位名称”!!", "信息未填写"
        Exit Sub
    End If
               
    If Len(Nz(txtSTel)) = 0 Then       '检视“单位电话”的输入数据
        
        MsgBoxShow "请输入“单位电话”!!", "信息未填写"
        Exit Sub
        
    Else
        On Error GoTo HandleErrorSTel       '处理错误
            
            Dim STel As String
            STel = CLng(Me.txtSTel)
    End If
   
    If Len(Nz(txtChiefME)) = 0 Then                    '检视“项目负责人”的输入数据
        
        MsgBoxShow "请输入“项目负责人”!!", "信息未填写"
        Exit Sub
    End If
   
    If Len(Nz(txtChiefMETel)) = 0 Then                  '检视“负责人电话”的输入数据
   
        MsgBoxShow "请输入“负责人电话”!!", "信息未填写"
        Exit Sub
        
    Else
        On Error GoTo HandleErrorChiefMETel
        
            Dim ChiefMETel As String
            ChiefMETel = CLng(Me.txtChiefMETel)
    End If
   
    '定义数据库连接
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
   
    Dim sqlstr As String        '定义sql连接字符串

    sqlstr = "select SVNum,SVFollowUp from InfoInvestmentComp where SVNum = '" & Me.txtSVYear & Me.txtSVsn & "'" _
             & "and SVFollowUp = '" & Me.txtSVFollowUp & "'"

    '检查“受监编号”是否重复
    rs.Open sqlstr, CurrentProject.Connection, adOpenDynamic, adLockOptimistic

    If rs.EOF = False Then

         MsgBoxShow "“受监编号”已分配,请重新输入!!”", "注意!!"
         Exit Sub

    rs.Close
    Set rs = Nothing
   
    Else
        rs.Close
        '连接数据表
        sqlstr = "select SVNum,SVFollowUp,District,ComName,CompAddress,Tel,QGrade,QLicence "
        sqlstr = sqlstr + "from InfoSupervisionComp"
        
        rs.Open sqlstr, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
   
        rs.AddNew   '添加数据
   
            rs("SVNum") = txtSVYear + txtSVsn   '受监编号合而为一
   
            If Len(Nz(Me.txtSVFollowUp)) = 0 Then   '后续编号设置默认值
        
                rs("SVFollowUp") = "00"
   
            Else
                rs("SVFollowUp") = txtSVFollowUp
   
            End If
        
            rs("District") = Trim(Me.txtSCompName)
            rs("ComName") = Trim(Me.txtInvestmentComp)
            rs("CompAddress") = Trim(Me.txtSCompAddress)
            rs("QGrade") = Trim(Me.txtSQG)
            rs("QLicence") = Trim(Me.txtSQLicence)
            rs("Tel") = Trim(Me.txtSTel)

        rs.Update
    End If
        
        MsgBoxShow "数据保存成功!!", "操作完成"
        
    rs.Close     '断开连接
        
    sqlstr = "select SVNum,SVFollowUp,District,ChiefME,EngineerLicence,Tel from InfoChiefME"   '建立新连接
   
    rs.Open sqlstr, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
   
    rs.AddNew
        
        rs("SVNum") = txtSVYear + txtSVsn
        rs("SVFollowUp") = Trim(Me.txtSVFollowUp)
        rs("District") = Trim(Me.txtSCompName)
        rs("ChiefME") = Trim(Me.txtChiefME)
        rs("EngineerLicence") = Trim(Me.txtChiefMEQLicence)
        rs("Tel") = Trim(Me.txtChiefMETel)
    rs.Update

        '清除文本框数据
        Me.txtSCompName.Value = ""
        Me.txtSCompAddress.Value = ""
        Me.txtSQG.Value = ""
        Me.txtSQLicence.Value = ""
        Me.txtSTel.Value = ""
        Me.txtChiefME.Value = ""
        Me.txtChiefMEQLicence.Value = ""
        Me.txtChiefMETel.Value = ""
    Me.txtSCompName.SetFocus
   
    rs.Close
    Set rs = Nothing

ExitHere:
    Exit Sub
   
HandleErrorSTel:
    MsgBoxShow "“单位电话”填写有误", "请填写数字"
    Resume ExitHere

HandleErrorChiefMETel:
    MsgBoxShow "总监工程师“联系电话”填写有误", "请填写数字"
    Resume ExitHere

红色代码部分无论我在文本框控件填写正确与否,都会来到最后处理错误的代码。如果我注释掉“HandleErrorChiefMETel:
”代码块,退出再运行则程序就跳到“HandleErrorSTel:”处理错误代码,就是说:只要你还有处理错误的代码存在,无论如何都会触发。求解。。。。。。。。。。我是那个地方写错了????

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-7-16 22:01:35 | 只看该作者
建议上传实例,可能原因就是txtSTel并未获得正确的值,如txtSTel获取的是更新前的空值,或并非窗体的字段值或不对应等情况。
3#
发表于 2012-7-17 08:19:00 | 只看该作者
错误处理语句 位置没有放对,无论你输入正确与否都会当错误处理
4#
发表于 2012-7-17 08:28:51 | 只看该作者
错误处理语句位置没有放对,而且缺少正确处理语句
5#
 楼主| 发表于 2012-7-17 08:37:54 | 只看该作者
phch163 发表于 2012-7-17 08:28
错误处理语句位置没有放对,而且缺少正确处理语句

我的意图是:文本框限制填写“数字”,如果填写字母或其他字符就报错。。。求教代码的正确写法。。。
6#
发表于 2012-7-17 09:10:39 | 只看该作者
Private Sub Text0_AfterUpdate()
    If IsNumeric(Me.Text0) = False Then MsgBox "请输入数字"
End Sub
7#
 楼主| 发表于 2012-7-17 09:24:51 | 只看该作者
yehf 发表于 2012-7-17 09:10
Private Sub Text0_AfterUpdate()
    If IsNumeric(Me.Text0) = False Then MsgBox "请输入数字"
End Su ...

谢谢帮忙,原来是这样的简单。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-27 02:22 , Processed in 0.087679 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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