Office中国论坛/Access中国论坛
标题:
mde与on error的困惑!
[打印本页]
作者:
lmj9401
时间:
2012-7-13 10:13
标题:
mde与on error的困惑!
本帖最后由 lmj9401 于 2012-7-13 11:31 编辑
在access数据库中新建窗体(或报表),然后在“打开”事件中添加以下代码:
On Error Resume Next
Dim str As String
str = Parent.Name
MsgBox str
复制代码
当直接运行该窗体(或报表)时,由于Parent.Name是一个显然的错误引用,触发error。但是on error在mdb和mde中的表现却大相径庭。
在mdb文件中On Error Resume Next可以发挥作用,代码正常运行。
在mde文件中On Error Resume Next引发程序崩溃,如图所示。
[attach]49663[/attach]
请问,应该如何解决on error在mde中引发程序崩溃的问题?
作者:
layaman_999
时间:
2012-7-13 10:30
Parent.Name
在子窗体中不能用于打开或者加载等事件,应该写成过程由主窗体调用,因为子窗体先加载,执行OPEN事件时候,还读取不到主窗体的属性
作者:
lmj9401
时间:
2012-7-13 11:09
上述数据库中只有一个窗体(或报表),Parent.Name是一个显而易见的错误,这个错误是故意设置的,这里要考察的是On Error Resume Next的执行效果。
在mdb文件中On Error Resume Next能够有效的捕获异常(错误)并忽略该异常继续执行后面的代码。但是在mde文件中却引发程序崩溃,On Error Resume Next机制失效!
作者:
t小宝
时间:
2012-7-13 13:37
测试了一下,确实如楼主所说,On Error Resume Next 在 mde 中失效,
不过改用 On Error GoTo line 还是可以的。
这是一个很宝贵的经验,谢谢分享!
作者:
lmj9401
时间:
2012-7-13 20:15
我猜测,这可能是mde优化代码造成的。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3