Vba AS400中的错误检测

Vba AS400中的错误检测,vba,ibm-midrange,Vba,Ibm Midrange,我现在了解了VBA的基本知识,并使用它在AS 400中发送或获取数据,但我还不太了解IBM“主机访问类库”的文档。我想知道如何在AS400中检测错误,因为现在我正在使用下面的脚本,或者在运行宏之外自行跳过错误 当出现错误时,我不能使用某些命令,如autECLOIA.WaitForInputReady,因此我在“check_error”中使用“wait 100”,但它并不总是有效。那么,我如何检测错误,是否有任何命令可以这样做?还是一种处理方法?不幸的是,这是一个庞大的主题,取决于应用程序。在5

我现在了解了VBA的基本知识,并使用它在AS 400中发送或获取数据,但我还不太了解IBM“主机访问类库”的文档。我想知道如何在AS400中检测错误,因为现在我正在使用下面的脚本,或者在运行宏之外自行跳过错误


当出现错误时,我不能使用某些命令,如autECLOIA.WaitForInputReady,因此我在“check_error”中使用“wait 100”,但它并不总是有效。那么,我如何检测错误,是否有任何命令可以这样做?还是一种处理方法?

不幸的是,这是一个庞大的主题,取决于应用程序。在5250显示器上向用户显示错误的方法有很多,一种方法不可能适合所有情况。最好只是询问您的特定用例,而不是所有用例

然而,让我给你一个高层次的观点,一些错误可能会出现的方式

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

程序消息队列 应用程序可以定义一个消息子文件,该文件是一种记录格式,在80x24屏幕上显示在第1行和第24行之间,或在132x27屏幕上显示在第1行和第27行之间。它出现的位置及其使用的显示行数在显示文件DDS中定义。此消息子文件中消息的外观可能是错误的唯一指示,但也可能包含信息性消息。您必须通过消息的文本来确定它是哪个。与信息一起,字段也可以反向成像,或以指示错误的方式着色,但键盘未锁定,并且没有声音指示存在问题

DDS错误消息 DDS错误消息可以定义为锁定键盘、反转字段图像和显示错误消息。这些消息也可以显示在DDS中可配置的任何行上。除了典型的显示行外,还有一个附加行:80x24屏幕上有25行,132x27屏幕上有28行,这些消息可以访问该行

自定义错误消息 有时错误会以完全自定义的方式显示,例如在屏幕上的某个位置填充文本字段


关键是您需要了解您的应用程序,以及它如何提供用户反馈,如果没有这些知识,我们将无法帮助您。

不幸的是,这是一个庞大的主题,取决于应用程序。在5250显示器上向用户显示错误的方法有很多,一种方法不可能适合所有情况。最好只是询问您的特定用例,而不是所有用例

然而,让我给你一个高层次的观点,一些错误可能会出现的方式

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

程序消息队列 应用程序可以定义一个消息子文件,该文件是一种记录格式,在80x24屏幕上显示在第1行和第24行之间,或在132x27屏幕上显示在第1行和第27行之间。它出现的位置及其使用的显示行数在显示文件DDS中定义。此消息子文件中消息的外观可能是错误的唯一指示,但也可能包含信息性消息。您必须通过消息的文本来确定它是哪个。与信息一起,字段也可以反向成像,或以指示错误的方式着色,但键盘未锁定,并且没有声音指示存在问题

DDS错误消息 DDS错误消息可以定义为锁定键盘、反转字段图像和显示错误消息。这些消息也可以显示在DDS中可配置的任何行上。除了典型的显示行外,还有一个附加行:80x24屏幕上有25行,132x27屏幕上有28行,这些消息可以访问该行

自定义错误消息 有时错误会以完全自定义的方式显示,例如在屏幕上的某个位置填充文本字段


关键是你需要了解你的应用程序,以及它如何提供用户反馈,如果没有这些知识,我们无法帮助你。

不清楚你的代码是否使用VBA的典型错误处理代码(在错误转到标签上,在错误恢复上,…),如果没有,这里是一个开始:我需要AS400中检测错误的returt值,是否出现错误示例:[if error then;x;else;y;end if;]vba语言中的非编译错误vba的错误处理提供返回值来描述在使用Err.Number和Err.Description等时出现的错误。是否尝试过使用这些值?另外,请确保在问题中提供一些代码,以便这里的人可以帮助您。感谢大家看一下autECLOIA。NotifyOiaError不清楚您的代码是否使用了VBA的典型错误处理代码(在错误转到标签上,在错误恢复中,…),如果没有,这里有一个地方可以开始:我需要在AS400中检测错误的returt值,如果错误出现或没有,例如:[如果出错,那么;x;否则;y;如果结束;]vba语言中的非编译错误vba的错误处理提供返回值来描述使用Err.Number和Err.Description等时的错误。您是否尝试过使用这些值?另外,请确保在问题中提供一些代码,以便这里的人可以帮助您。Th
Sub check_error()
    autECLSession.autECLOIA.WaitForAppAvailable
    autECLSession.autECLPS.wait 100
    autECLSession.autECLPS.SendKeys "[reset]"  
End Sub