MS Access to MS Access data transfer without overwriting

问题描述 投票:0回答:1

快速提问,假设我有两个具有完全相同标题的表的访问数据库,我将如何使用 VBA(从 DATABASE1 执行)将数据从 DATABASE1_TABLE_A 附加到 DATABASE2_TABLE_B。我尝试了

DoCmd.CopyObject "DATABASE2_DESTINATION", "TABLE_B", acTable, "TABLE_A"

有效,但是它会覆盖现有的 DATABASE2_TABLE_B 而不是向其附加数据。是否有另一个命令允许将数据从一个访问数据库附加到另一个访问数据库而不覆盖现有数据?

理论上我可以完成

DoCmd.TransferDatabase acImport, "Microsoft Access", DATABASE2_DESTINATION", acTable, "TABLE_B", "RANDOM_DB_NAME", False

然后将我的表与传输的表合并,然后执行 DoCmd.CopyObject 但似乎这是解决此问题的一种非常低效的方法。

V/R

vba ms-access ms-access-2016
1个回答
0
投票

如果您有两个具有相同结构的表,您可以使用以下代码来完成这项工作

Sub copyData()

    Dim db As database  ' add reference to DAO library
    Set db = CurrentDb

    Dim sSQL As String
    Dim dbName As String
    dbName = "Path\TargetDB.accdb"

    sSQL = "INSERT INTO tblDest IN '" & _
        dbName & _
        "'SELECT tblData.* FROM tblData;"

    db.Execute sSQL

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.