Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

错误陷阱(运行错误)语句简介

时 间:2010-07-09 10:18:52
作 者:王樵民   ID:5203  城市:郑州
摘 要:本文介绍错误陷阱的基本方法,为下一篇错误陷阱的妙用打基础。

正 文:

错误陷阱(运行错误)语句简介
On Error 语句:启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。
其语法有三种形式:
1、On Error GoTo line :启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误
一般语法格式
Sub 过程1(Var1, Var2, Var3, Var4)
    On Error GoTo ErrorHandler
    . . .
    Exit Sub
ErrorHandler:
    . . .
    Resume Next
End Sub

该语句两种表示方法:
A、On Error GoTo 行号
示例1:本例中假设窗体上有一个按钮Command0,其单击事件的代码如下:
Private Sub Command0_Click()
On Error GoTo 100
DoCmd.OpenForm "窗体X"
Exit Sub
100 MsgBox ("错误号:" & Err.Number & ",错误描述:" & Err.Description)
End Sub
如果窗体X不存在,则就会进入错误陷阱程序,显示错误号及错误提示信息
B、On Error GoTo 标签
示例2:
Private Sub Command0_Click()
On Error GoTo err1
DoCmd.OpenForm "窗体X"
Exit Sub
err1:
 MsgBox ("错误号:" & Err.Number & ",错误描述:" & Err.Description)
End Sub
示例2与示例1等效。
示例3:本例中假设窗体上有一个按钮Command0,其单击事件的代码如下:
Private Sub Command0_Click()
On Error GoTo err1
DoCmd.OpenForm "窗体X"
DoCmd.OpenForm "窗体1"
Exit Sub
err1:
 MsgBox ("错误号:" & Err.Number & ",错误描述:" & Err.Description)
 Resume Next '返回执行出错后的下一跳代码
End Sub
如果窗体X不存在,则就会进入错误陷阱程序,显示错误号及错误提示信息,接着执行DoCmd.OpenForm "窗体1"语句,如果窗体1存在则打开窗体,否则显示错误信息。
2、On Error Resume Next
On Error Resume Next 会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用含有 On Error Resume Next 语句的过程的语句继续运行。这个语句可以置运行时错误于不顾,使程序得以继续执行。可以将错误处理程序放置在错误发生的地方,而不必将控件传输到过程中的其它位置。在调用另一个过程时,On Error Resume Next 语句成为非活动的,所以,如果希望在例程中进行嵌入错误处理,则应在每一个调用的例程中执行 On Error Resume Next 语句。
示例4:本例中假设窗体上有一个按钮Command0,其单击事件的代码如下:
Private Sub Command0_Click()
On Error Resume Next
DoCmd.OpenForm "窗体X"
DoCmd.OpenForm "窗体1"
End Sub
如果窗体X不存在,接着执行DoCmd.OpenForm "窗体1"语句,如果窗体1存在则打开窗体,否则什么也没做。

3、On Error GoTo 0 停止在当前过程中处理错误
关闭错我处理陷阱,错误陷阱失效。
可利用Err对象返回含有关于运行时错误的信息。
Err.Description '错误信息描述
Err.Number  '错误号码
Err.Source  '指明最初生成错误的对象或应用程序的名称。




Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助