从VBA发送数据到AS400(运行时错误249)

时间:2017-02-09 10:18:07

标签: vba excel-vba ibm-midrange excel

我希望你能帮我解决这个问题

我的朋友每天必须使用存储在Excel电子表格中的数据填充AS400中的相同字段。我是VBA中非常高级的程序员,所以如果有办法让vba和as400交互,我就会徘徊

任何想法?

非常感谢你

修改 同时我正在做一些挖掘,我发现了这个

http://www.ibm.com/support/knowledgecenter/SSEQ5Y_5.9.0/com.ibm.pcomm.doc/books/html/host_access08.htm

Dim autECLConnList as Object
Dim Num as Long

Set autECLConnList = CreateObject("PCOMM.autECLConnList")

autECLConnList.Refresh
Num = autECLConnList.Count

但是当我尝试exectu以下代码时,我得到运行时错误249,说ActiveX组件无法创建对象

2 个答案:

答案 0 :(得分:3)

您可以使用IBM Client Access ODBC Driver执行此操作。 https://www-304.ibm.com/support/docview.wss?uid=swg21418043

然后使用此连接字符串:

Driver={iSeries Access ODBC Driver};System=my_system_name;Uid=myUsername;
Pwd=myPassword;

像往常一样,我在这里找到了它:https://www.connectionstrings.com/as-400/

答案 1 :(得分:3)

如果要将数据直接加载到表中,则可以使用ODBC,OLEDB或.NET驱动程序。事实上,IBM提供了直接向Excel传输数据的功能。

如果您必须通过现有屏幕加载数据,那么您就在正确的轨道上。但请注意,个人通信(PCOMM)是一种独立产品,与更普遍的客户端访问(CA)产品不同。

由于CA包含PCOMM的子集作为CA仿真器,因此有点令人困惑。

还有两种CA变体 - 较旧的IBM i Access for Windows(最初用于Windows的客户端访问(CA)) - 基于Java的新的IBM i Access Client Solutions(ACS)

旧版CA产品包含APIs for enabling workstation programs to interact with IBM i host systems.您需要安装IBM i Access for Windows的Programmer工具包组件。该工具包基本上只是文档。工具包中包含一个链接to some sample applications

现在新的ACS产品是基于Java的。但是,IBM在Windows Application Package下为ACS打包了一些特定于Windows的组件。这显然包括前面提到的programmers toolkit

老实说,我不确定ACS模拟器是基于Java的,而不是像老版本模拟器那样基于原生Windows PCOMM,它是如何工作的。