我已经搜了好几个星期,但我无法找到我正在寻找的真正答案。我有两个相同的Access数据库来存储文件路径。这两个数据库存储在两个不同的驱动器(不同的位置)上。我一直试图找到一种方法来合并表而不重复记录。我已合并以下链接中的代码:
https://superuser.com/questions/292272/how-do-i-synchronize-multiple-access-databases-together
当两个数据库都添加了记录时,会出现问题。只要尚未使用主键ID,就会添加记录。如果它们已被使用,则不会添加记录。有没有解决的办法?我无法相信MS Access没有合并数据库的功能。任何帮助表示赞赏 - 谢谢
答案 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
这将返回两个表中的唯一记录。