我有2台计算机,每台计算机都有一个MS Access数据库,同一组表具有相同的结构。我想匹配和同步这两个数据库。我想创建一些计划任务,匹配两个数据库中的所有表,检查任何新行或更新预先存在的值,然后更新表。有没有办法在MS Access中实现这一目标?如果有,怎么样?或者我需要用某种编程语言编写一些应用程序吗?
感谢。
答案 0 :(得分:3)
如果他们在局域网上,为什么不在两台计算机之间共享桌子呢?您希望将MDB拆分为包含查询,表单,报表,宏和模块的前端MDB,其中只包含后端MDB中的表和关系。 FE被复制到每个网络用户计算机。 FE MDB链接到驻留在服务器上的后端MDB中的表。您对FE MDB进行更新并将其分发给用户,可能作为MDE。
有关详细信息,请参阅"Splitting your app into a front end and back end Tips"页面。查看免费Auto FE Updater utility以使新FE的分布相对轻松。虽然这个实用程序对于两台PC来说太过分了,但我会在将来读这篇文章时提及它。
答案 1 :(得分:2)
您可以创建一系列查询,以检查对键(更新)上匹配的表的更改或缺少键值(添加)。查询可以通过VBA运行。
EDIT对于具有数据库密码的外部数据库:
SELECT *
FROM [MS Access;PWD=password;DATABASE=C:\Docs\LTD.mdb].Companies a
INNER JOIN Companies b
ON a.ID=b.ID
WHERE a.CompanyName<>b.CompanyName
您也可以使用上面的字符串而不使用Where语句作为记录集,并遍历每个字段以查找不匹配。您甚至可以使用VBA和TableDefs循环遍历表集合并构建SQL字符串。
公司中的新记录别名b
SELECT *
FROM [MS Access;PWD=password;DATABASE=C:\Docs\LTD.mdb].Companies a
LEFT JOIN Companies b
ON a.ID=b.ID
WHERE b.ID Is Null