我想使用excel工作表中的表更新as400中的表,如下所示:
表1 [as400]
REFNO QTY
1 10
2 12
3 20
表2 [excel工作表]
REFNO QTY
1 13
2 15
3 22
表1中的数量使用VBA从表2更新,因此输出将如下:
表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 !!谢谢..
答案 0 :(得分:0)
请使用 cwbx 对象进行数据传输,而不是使用ADO。 Iirc,它们比OLE驱动程序更快,但它取决于您的数据集成/转换需求的复杂程度。
您应该在i系列文件夹中找到cwbx.CHM文件,但IBM在data transfer
上提供了很好的概述