我想使用 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/