2017-07-27 39 views
0

我现在基本使用VBA,并使用它在AS400中发送或获取数据,但我并不是很了解IBM“Host Access Class Library”的文档。我想知道如何在AS400中检测错误,现在我正在使用下面的脚本或者在运行宏之外跳过错误。AS400中的错误检测

AS400 error

Sub check_error() 
    autECLSession.autECLOIA.WaitForAppAvailable 
    autECLSession.autECLPS.wait 100 
    autECLSession.autECLPS.SendKeys "[reset]" 
End Sub 

当错误出现,我不能使用像autECLOIA.WaitForInputReady一些命令,所以不是我用我的“check_error”“等待100”,但它并不总是工作。那么如何检测错误,是否有任何命令可以做到这一点?还是一种处理它的方法?

+0

不清楚您的代码是否使用VBA的典型错误处理代码(On Error Goto Label,On Error Resume,...)如果没有,请从这里开始:https://excelmacromastery.com/vba-错误处理/ –

+0

如果出现错误,我需要在AS400中检测到错误的returt值,例如:[If error then; X;其他; y; end if;] vba语言中没有编译错误 – NoOne

+0

当您使用Err.Number&Err.Description等时,VBA的错误处理提供返回值来描述错误您尝试过使用这些错误吗?此外,请务必在您的问题中提供一些代码,以便这些人可以帮助您。谢谢 –

回答

2

这是一个很大的话题,不幸的是,它取决于应用程序。在5250显示器上可以向用户显示错误的方式有很多,一种方法不适合所有情况。最好向我们询问你的具体用例,而不是所有的用例。

但是,让我给你一些关于错误可以呈现的方式的高级视图。

外部消息队列 这是程序向* EXT消息队列发送状态消息的时候。这些消息显示在显示屏的最后一行。它们不出现在作业日志中,通常不用于例外情况,但它们也不会结束程序。

计划消息队列 应用程序可以定义消息子文件,其是一个显示线1和24之间的画面上的80x24屏幕上,或一个132x27屏幕上的行1和27之间的记录格式。出现的位置以及显示文件DDS中定义的显示行数。此消息子文件中消息的出现可能是唯一的错误指示,但它也可能包含信息消息。你将不得不通过消息的文本来确定它是哪一个。与消息一起,字段也可以被反转成像,或以指示错误的方式着色,但是键盘未被锁定,并且没有可听见的指示存在问题。

DDS错误消息 DDS错误消息可以被定义为锁定键盘,反转图像领域,并且显示一个错误消息。这些消息也可以显示在任何线路上,这可以在DDS中配置。除了典型的显示行之外,还有一条附加行:在80x24屏幕上显示25行,在132x27屏幕上显示28行,可以访问这些消息。

自定义错误消息 有时一个错误是由屏幕上的某处填充的文本字段在一个完全自定义的方式表示,例如。

问题是你需要知道你的应用程序,以及它如何提供用户反馈,如果没有这些知识,我们不能帮你。

+0

必须要给你一个勇敢的企图,以面对一个不明确的问题。 –