此表与源表和目标表的列名匹配。我想如下将记录从源表转移到目标表。
Dim Con_Dest As New ADODB.Connection
Dim Con_Sour As New ADODB.Connection
Dim Rs_Sour As New ADODB.Recordset
Dim Rs_Dest As New ADODB.Recordset
Dim Str_SqlSour As String
Dim Str_SqlDest As String
Dim Str_Sql As String
Con_Sour.Open "dsn=xxxx;uid=xxxx;pwd=xxxxx"
Con_Dest.Open "dsn=yyyyy;uid=yyyyy;pwd=yyyyyy"
Str_SqlSour = "select * from Table_Sour"
Rs_Sour.Open Str_SqlSour, Con_Sour
Rs_Dest.Open "Table_Dest", Con_Dest, adOpenDynamic, adLockOptimistic
Rs_Sour.MoveFirst
Do Until Rs_Sour.EOF
With Rs_Dest
.AddNew
.Fields("AAA").Value = Rs_Sour.Fields("id")
.Fields("AAB").Value = Rs_Sour.Fields("target_id")
.Fields("AAC").Value = Rs_Sour.Fields("group_code")
.....
.Update
End With
Rs_Sour.MoveNext
Loop
有没有一种方法可以循环遍历上面匹配表中的记录,所以我不需要键入所有的.Fields("Col_Sour").Value = Rs_Sour.Fields("Col_Dest")
?
Dim Con_Dest As New ADODB.Connection
Dim Con_Sour As New ADODB.Connection
Dim Rs_Sour As New ADODB.Recordset
Dim Rs_Dest As New ADODB.Recordset
Dim Rs_MATC As DAO.Recordset
Dim Str_SqlSour As String
Dim Str_SqlDest As String
Con_Sour.Open "dsn=xxxx;uid=xxxx;pwd=xxxx"
Con_Dest.Open "dsn=yyyy;uid=yyyy;pwd=yyyy"
Str_SqlSour = "select * from Table_Source"
Rs_Sour.Open Str_SqlSour, Con_Sour
Rs_Dest.Open "Table_Dest", Con_Dest, adOpenDynamic, adLockOptimistic
Set Rs_MATC = CurrentDb.OpenRecordset("select * from Table_Matching")
Rs_Sour.MoveFirst
Do Until Rs_Sour.EOF
With Rs_Dest
.AddNew
Rs_MATC.MoveFirst
Do Until Rs_MATC.EOF
Rs_Dest.Fields(Rs_MATC.Fields("Col_Dest").Value).Value = Rs_Sour.Fields(Rs_MATC.Fields("Col_Sour").Value).Value
Rs_MATC.MoveNext
Loop
.Update
End With
Rs_Sour.MoveNext
Loop