错误陷阱(运行错误)语句简介
时 间: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源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)