合并存储在不同位置的两个Access数据库

时间:2016-06-29 13:52:42

标签: database vba ms-access access-vba access

我已经搜了好几个星期,但我无法找到我正在寻找的真正答案。我有两个相同的Access数据库来存储文件路径。这两个数据库存储在两个不同的驱动器(不同的位置)上。我一直试图找到一种方法来合并表而不重复记录。我已合并以下链接中的代码:

https://superuser.com/questions/292272/how-do-i-synchronize-multiple-access-databases-together

当两个数据库都添加了记录时,会出现问题。只要尚未使用主键ID,就会添加记录。如果它们已被使用,则不会添加记录。有没有解决的办法?我无法相信MS Access没有合并数据库的功能。任何帮助表示赞赏 - 谢谢

3 个答案:

答案 0 :(得分:1)

附加记录时,您附加除主键之外的所有字段。

最简单的方法是追加记录,以便在其中一个数据库中创建链接表。

[Table 1]

ID | FilePath | DateCreated |

[Linked Table 1]

ID | FilePath | DateCreated |

在此示例中,我们仅选择[Linked Table 1]中尚未包含在Table1中的文件路径,并将它们附加到Table1。

INSERT INTO Table1 ( FilePath, DateCreated )
SELECT [Linked Table 1].FilePath, [Linked Table 1].DateCreated
FROM [Linked Table 1]
WHERE ((([Linked Table 1].FilePath) Not In (Select FilePath FROM Table1)));

答案 1 :(得分:0)

你可以有一个覆盖其中一个数据库的宏,实际上有一个主数据库和一个备份吗?

Save = Application.GetSaveAsFilename _
(FileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm")

在宏中使用此代码,然后将该宏指定给按钮。

我不是100%确定如何选择保存菜单首先在哪里(即默认搜索位置),因为我只看了一周以上的VBA。但只要您可以访问这两个位置,那么这应该很容易完成!

希望这有帮助!

答案 2 :(得分:0)

一种非常简单的方法是为此目的建立第三个数据库。

在此处,链接两个数据库中的两个表。

然后创建一个查询来检索数据:

Select TableA.* From TableA
Union
Select TableB.* From TableB

这将返回两个表中的唯一记录。

相关问题