excel - 使用带有vba的excel中的表更新as400中的表

标签 excel inner-join ibm-midrange updating vba

我想使用 excel 工作表中的表格更新 as400 中的表格,如下所示:

表 1 [as400]

REFNO   QTY
1       10
2       12 
3       20    

表2【excel工作表】
REFNO   QTY
1       13
2       15 
3       22  

Table1 中的 Qty 使用 VBA 从 Table2 更新,因此输出将如下所示:

表 1 [as400]
REFNO   QTY
1       13
2       15 
3       22  

我写过这样的代码:
Dim s1 As Worksheet
Dim BRDa As ADODB.Connection
Dim RS As ADODB.Recordset
Dim b As Integer

Set RS = New ADODB.Recordset
Set BRDa = New ADODB.Connection
BRDa.ConnectionString = "provider=ABC; Data source=XYZ; user id=OK1; password=OK2"
BRDa.Open

On Error Resume Next 
Dim QRY1, QRY2 As String
QRY1 = "SELECT * FROM TABLE1 INNER JOIN S1.TABLE2 ON TABLE1.REFNO=TABLE2.REFNO"
RS.Open QRY1, BRDa, adOpenDynamic, adLockOptimistic

b = 0

Do While Not RS.EOF
QRY2 = "UPDATE TABLE1 SET TABLE1.QTY = TABLE2.QTY WHERE TABLE1.REFNO=TABLE2.REFNO"
BRDa.Execute QRY2, dbFailOnError

b = b + 1
RS.MoveNext
Loop
TextBox1.Text = b
RS.Close

BRDa.Close
End If
End Sub

但它不起作用。有人可以帮我吗... T__T!谢谢..

最佳答案

不要使用 ADO,而是看一下 cwbx 用于数据传输的对象。 Iirc,它们比 OLE 驱动程序更快,但这取决于您的数据集成/转换需求的复杂程度。

您应该会在您的 i 系列文件夹中找到一个 cwbx.CHM 文件,但是 IBM 在 data transfer 上提供了一个很好的概述。

关于excel - 使用带有vba的excel中的表更新as400中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36471890/

相关文章:

python - openpyxl 趋势线和 R 平方值

excel - 通过更改类名进行抓取

sql - Oracle sql Inner join右表第一条记录

data-structures - 转换为具有固定位置的完整自由格式数据结构

sql - DB2 使用序列号进行更新,但仅在条件发生时增加

java.lang.NoClassDefFoundError : org/apache/xmlbeans/XmlException though all jar files added

c# - 如何使用 Epplus 获取修改后的 excel 的实际使用范围?

mysql - 将一个 MySQL 表的 ID 名称连接到另一表中的 ID

mysql - 连接两个表以获取计数

c++ - 在多个可执行文件之间共享相同的 sql 连接