我在两个不同的文件中有两个具有相同列的表。一个文件" Base PT.accdb"我想在其他文件中插入所有Recordset" Sanchez_Mar.mdb"。两个表都有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
插入所有记录集是否可行? 或者我如何带来桌子来自" Sanchez_Mar.mdb" to" Base PT.accdb"快?
答案 0 :(得分:2)
您可以使用其他数据库作为数据源来运行插入查询。
"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"
答案 1 :(得分:1)
从源数据库执行以下操作:
1)创建到目标表的链接表。
2)创建一个追加查询,从源表中选择并附加到链接表。
3)运行它
如果您已经拥有目标表,这可能会快得多。如果您不介意重新开始,可以删除目标表,只需从目标数据库进行导入。