将完整记录集插入其他数据库 MS Access 中的另一个 table

Insert Complete RecordSet to another table in other database MS Access

我在两个不同的文件中有 2 个包含相同列的表。一个文件 "Base PT.accdb" 我想插入另一个文件 "Sanchez_Mar.mdb" 中的所有 Recordset。两个 table 都有 7 个同名的列。

我在使用 "System.Data.OleDb.OleDbConnection" 时遇到了很多问题,所以我决定使用 RecordSets。 目前我正在使用循环插入所有内容,但是有很多数据所以需要很长时间。 可以将所有记录集插入到另一个数据库吗?

这是我需要帮助的代码部分:

Sub Copiar_BasePT2(RutaPT As String)
  Dim Cant as Long
  Dim db As Database
  Dim dbBase_PT As Database
  Set dbBase_PT = OpenDatabase(RutaPT & "\Base PT.accdb")
  Set db = CurrentDb
  Dim rsSYM As Recordset
  Set rsSYM = db.OpenRecordset("SELECT * from FINAL_Alarma_SYM")
  rsSYM.MoveLast
  Cant = rsSYM.RecordCount
  rsSYM.MoveFirst

  For i = 1 To Cant 
          dbBase_PT.Execute ("Insert into Tab_PT values('" & rsSYM.Fields(0) & "','" & rsSYM.Fields(1) & "','" & rsSYM.Fields(2) & "','" & rsSYM.Fields(3) & "','" & rsSYM.Fields(4) & "','" & rsSYM.Fields(5) & "','" & rsSYM.Fields(6) & "');")
          rsSYM.MoveNext

          DoEvents

  Next i
End Sub

是否可以插入所有的记录集? 或者我怎样才能使 table 从 "Sanchez_Mar.mdb" 更快地变为 "Base PT.accdb"?

从源数据库执行以下操作:

1) 创建到目标 table 的链接 table。

  • 在“外部数据”选项卡上的“导入”组中,单击“访问”。
  • Select Link 而不是导入
  • 浏览到目标数据库和select文件
  • Select 列表中的目的地 table

2) 从源 table 创建附加查询 select 并附加到链接 table。

  • 通过 select 独立地对每个字段创建一个 select 查询
  • 通过单击“设计”选项卡中的 "Append" 将查询更改为追加查询
  • Select(链接的)目的地 table

3) 运行 它

如果您已经到达目的地 table,这可能是最快的速度。如果您不介意重新开始,可以删除目标 table 并只从目标数据库导入。

您可以 运行 使用您的其他数据库作为数据源的插入查询。

"INSERT INTO Tab_PT (Field1, Field2, Field3, Field4, Field5, Field6, Field7) " & _
" SELECT Field1, Field2, Field3, Field4, Field5, Field6, Field7 " & _
" FROM [MS Access;DATABASE=PathToSanchez_MarDB].FINAL_Alarma_SYM"