ADO记录集将查询SQL Server数据。目前,我使用循环将服务器数据移动到Access本地表以进行进一步处理。
如何消除Do-Loop?本地表与服务器表具有完全相同的列,而本地表具有比服务器更多的列,这些列不会被循环填充数据。
Dim rsServer As New ADODB.Recordset
Dim rsLocal As New ADODB.Recordset
Dim fField As ADODB.field
str = "SELECT * FROM tableServer WHERE ....."
rsServer.Open str, dbServer, adOpenStatic, adLockReadOnly, adCmdText
str = "SELECT * FROM tableLocal"
rsLocal.Open str, dbLocal, adOpenStatic, adLockOptimistic, adCmdText
Do Until rsServer.EOF
rsLocal.AddNew
For Each fField In rsServer.Fields
rsLocal.Fields(fField.Name).Value = rsServer.Fields(fField.Name).Value
Next
rsLocal.Update
rsServer.MoveNext
Loop
答案 0 :(得分:1)
如果将SQL Server表连接为远程表,则Access不会区分本地表。因此,您将能够使用远程表中的数据在本地表上运行插入查询。