Sql server 复制SQL Server记录以访问本地表

Sql server 复制SQL Server记录以访问本地表,sql-server,ms-access,Sql Server,Ms Access,SQL Server数据将由ADO记录集查询。目前,我使用一个循环来移动服务器数据以访问本地表,以便进一步处理 如何消除Do循环?本地表的列数与服务器表的列数完全相同,而本地表的列数比服务器的列数多,循环不会填充数据 Dim rsServer As New ADODB.Recordset Dim rsLocal As New ADODB.Recordset Dim fField As ADODB.field str = "SELECT * FROM tableServer WHERE ...

SQL Server数据将由ADO记录集查询。目前,我使用一个循环来移动服务器数据以访问本地表,以便进一步处理

如何消除Do循环?本地表的列数与服务器表的列数完全相同,而本地表的列数比服务器的列数多,循环不会填充数据

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

如果将SQL Server表作为远程表连接,则Access不会区分远程表和本地表。因此,您将能够使用远程表中的数据在本地表上运行insert查询。

insert into……。是的,当两个表都在访问本地表时,我使用insert。当源在SQL Server中,而目标在Access本地表中时,不知道如何使用INSERT。请参见下文@ove的答案。我对@ove的答复的评论是,我无法链接到SQL Server。我需要使用记录集或其他需要您评论的解决方案。为什么您不能链接?使用ADO本质上没有什么不同。您甚至可以通过编程方式设置临时链接。SQL服务器不作为远程表链接。我需要使用ADO打开只读记录集。我仍然不明白为什么不能链接表。如果您可以随意使用Access数据库,那么手动创建链接表是最简单的方法。如果您仍然需要按程序进行,这可能会引导您走上正确的道路: