使用记录集从SQL插入access表

使用记录集从SQL插入access表,sql,ms-access,vba,ms-access-2010,Sql,Ms Access,Vba,Ms Access 2010,我使用下面的代码使用记录集从SQL在access表中插入数据。此表还用于其他操作。虽然这是将数据完美地插入到表中,但这需要花费大量的时间。我是否应该使用其他方法将数据插入表中以减少所需时间 Do Until rs.EOF DoCmd.RunSQL "INSERT INTO Table (Alpha,Beta,Gamma) VALUES(" & _ rs.Fields(0).Value & ",'" & rs.Fields(1).Va

我使用下面的代码使用记录集从SQL在access表中插入数据。此表还用于其他操作。虽然这是将数据完美地插入到表中,但这需要花费大量的时间。我是否应该使用其他方法将数据插入表中以减少所需时间

Do Until rs.EOF
          DoCmd.RunSQL "INSERT INTO Table (Alpha,Beta,Gamma) VALUES(" & _
          rs.Fields(0).Value & ",'" & rs.Fields(1).Value & "'," & rs.Fields(2).Value _
          & " );"
        rs.MoveNext
Loop

如果您可以在SQL
UPDATE
语句中选择数据,而不是在
VBA
中循环,那么所需的时间将很短,因为所有工作都将由服务器端完成

  • 创建一个链接到SQL表的表,称之为
    MyLinkedTable
  • 创建附加查询,以便从链接表附加到本地访问表。它看起来像这样:
    插入MyAccessTable(Field1,Field2…)选择Field1,Field2。。。从我的链接表

  • 您只需要在SELECT中插入一个。我们需要有关您的记录集的更多信息,但您可能不需要它

    '我们开始了,只有一行!
    DoCmd.RunSQL“插入到表中(Alpha、Beta、Gamma)从表中选择column1、column2、column2”
    
    SELECT语句可能与用于打开记录集的语句相同。
    祝你好运

    你能详细说明一下你的代码吗?你是在每一行插入相同的数据吗?你为什么一直在做循环?只需运行一次sql,表中的每一行都运行相同的sql。是的,我是在循环中运行的。但是最好的方法是什么,这样我就可以在一次快照中插入数据。是否可以使用vba。我的桌子在使用中。此表用于其他操作。整个想法是不希望在VBA中执行此操作,因为它需要太长时间。您希望在SQL中完成这一切。告诉我,源表和目标表在同一数据库中吗?源数据库在SQL中,但目标表在access中。你是说SQL Server吗?如何连接到源表?是SQL Server。抱歉搞混了。我正在使用ADODB连接到SQL Server。