如何避免在vbScript或VBA代码中对主机会话ID进行硬编码



我对在AS400上使用PCOMM有一些新手知识。我在Excel中编写了15个VBA脚本,这些脚本调用AS400宏。要使程序工作,AS400必须在登录屏幕上,并且活动主机会话必须设置为"D"。让我沮丧的是主持会议。由于有很多人使用同一台电脑,我永远不知道AS400在任何时候都会激活哪个主机会话。。。有时是"A",有时是"B",或者同一屏幕上可能有多个打开的会话。

下面是我的VBA脚本的前几行。有没有一种方法可以定义脚本来避免使用主机会话ID(在这种情况下为"D"(,这样我的脚本就可以使用任何ID("a"或"B"等(

Sub APVCHDET()
Set autECLSession = CreateObject("PCOMM.autECLSession")
autECLSession.SetConnectionByName ("D")
p>我在文档中发现了这一点:
Dim SessObj as Object
Dim autECLConnList as Object
Set autECLConnList = CreateObject("PCOMM.autECLConnList")
Set SessObj = CreateObject("PCOMM.autECLSession")
' Initialize the session
autECLConnList.Refresh
SessObj.SetConnectionByHandle(autECLConnList(1).Handle)
SessObj.StopCommunication()

点击此处了解更多信息。不过,这有点像从消防水管里喝水。

Set SessObj = CreateObject("PCOMM.autECLSession"),在ur代码中,SessObj用于设置需要连接的会话。关于你向Jmarkmurphy提出的问题,注释掉了"SessObj.StopCommunication()",这与转到PCOMM模拟器"通信"菜单并选择"断开连接"具有相同的效果。

最后,关于您最初的问题,"autECLSession.autECLOIA.WaitForAppAvailable"上的错误,如开头所述,您已设置通过使用"SessObj"连接会话,因此,由于"autECLSession"根本没有用于连接任何连接,这就是为什么弹出错误"尚未为此对象设置会话">

最新更新