Office中国论坛/Access中国论坛

标题: 在ACCESS的VB代码出错时,自动找到出错行 [打印本页]

作者: 望储公    时间: 2016-11-2 09:28
标题: 在ACCESS的VB代码出错时,自动找到出错行
在ACCESS2003中,遇到程序错误时,系统会弹出错误提示,然后找到最后执行的出错语句行,并用颜色标识,这个功能很方便。
但现在,如果使用的是宏,那么只提示出错的宏名,没有进一步找到VB的最后出错语句行。
而对于并未使用宏的VB程序,则没有任何提示,完全无动静
在VB编辑器的菜单:工具-选项 里面,已选择:自动语法检测各项、及遇到未处理的错误时中断的选项
请教如何恢复这个功能!若要依靠个人去查找出错,花费的时间实在太大
作者: tmtony    时间: 2016-11-2 09:39
1.接shift进入
2.暂时去掉On error
作者: 望储公    时间: 2016-11-2 10:10
刚看到。不好意思,网页没有自运刷新,还以为未有回复
1.按shift进入
不是很明白,请问是怎样操作,请列具体的操作界面和步骤
作者: 望储公    时间: 2016-11-2 11:43
二楼的提示,本人仍然未弄清楚。
无论是否包含ON ERROR出错程序,假如子过程2有错误,那么前面无错的程序照常运行,到子过程2时,就全无动静,所以也无法通过在子过程2中自定义MSGBOX来逐步锁定出错行
请各位高手尽快赐教
作者: roych    时间: 2016-11-4 01:27
宏是按顺序一步步运行的。因此,一旦出现错误,只能是当前的宏名有问题,检查出错的宏名就好了。
例如,使用导入文件的宏时,没有该文件,或者该文件被占用而无法导入。当宏运行到“导入”时则出错。宏出错时都有提示,根据提示去检查各项参数就好了。
如果是宏调用VBA里的子程序而出错,则应单独检查子程序。
----------------------------------------

至于整个宏组出错里若干个宏名出错,而觉得无法检查或者检查不方便的时候,楼主最应该思考的不是如何去排查,而是先反思,流程有没有问题。基本上只有流程上思考不周全,才会导致宏组大片出错。
在创建宏组之前,个人建议,最好理清下流程。到底属于并列关系还是先后顺序,如果是先后顺序,则不能乱调。

以下面的链接附件为例,由于数据包含压缩包,压缩包是不能被直接导入(或链接)数据的,因此需要先解压再导入(或链接),这就存在一个先后顺序问题了。一旦对调肯定出错:
http://www.office-cn.net/thread-121627-1-1.html

如果有时间,就仔细琢磨下吧。事实上,宏组用到的东西并不算太多,一般都是导入导出数据,执行操作查询等等。其它宏(例如打开数据表)等等不是不能做,只是出于安全性的考虑,往往通过窗体来完成而已。

------------------------------------------------
关于宏的调试
一般宏的调试可以通过在不同的位置插入stopmacro来调试。宏是没有强制跳过出错的玩法的。。。。那是VBA才有的On Error Resume Next。

作者: 望储公    时间: 2016-11-11 14:41
谢谢!本人在ACCESS里面主要用的是VBA,提到宏只是讲述两种情况。
最后检查出来,是VBA程序的变量名未定义。虽然强制声明了Option Explicit,但是程序引用了未声明的变量时,系统没有反映任何信息。
虽然问题仍然摆在这里,还是要谢谢大家!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3