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

Send data to AS400 from VBA (runtime error 249)

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

我的一个朋友每天都必须使用存储在 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

但是当我尝试执行以下代码时,出现运行时错误 249,提示 ActiveX 组件无法创建对象

您可以使用 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/

如果您想将数据直接加载到表中,那么 ODBC、OLEDB 或 .NET 驱动程序将是您的不二之选。其实IBM提供了直接传输数据的功能to/from Excel.

如果您必须通过现有屏幕加载数据,那么您就走对了。但是,请注意,个人通信 (PCOMM) 是一种 stand-a-lone 产品,不同于更流行的客户端访问 (CA) 产品。

这有点令人困惑,因为 CA 包含 PCOMM 的一个子集作为 CA 模拟器。

CA 有两种变体 - Windows 的旧版 IBM i Access(最初是 Windows 的客户端访问 (CA)) - 新的 Java 基于 IBM i 访问客户端解决方案 (ACS)

包括较旧的 CA 产品APIs for enabling workstation programs to interact with IBM i host systems. You'll need to install the Programmer's Toolkit component of IBM i Access for Windows. The toolkit is basically just documentation. Included in the toolkit is a link to some sample applications

现在新的 ACS 产品是基于 Java 的。但是,IBM 在 Windows Application Package. That apparently includes the aforementioned programmers toolkit.

下为 ACS 打包了一些 windows 特定组件

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