快速提问,假设我有两个具有完全相同标题的表的访问数据库,我将如何使用 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
如果您有两个具有相同结构的表,您可以使用以下代码来完成这项工作
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