我对在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"
根本没有用于连接任何连接,这就是为什么弹出错误"尚未为此对象设置会话">