从脱机DB添加/更新到中央数据库 - 访问

时间:2012-07-09 13:50:01

标签: sql sql-server ms-access merge

由于我们的基础设施,我有一个独特的问题。我有两个离线平板电脑正在执行调查并在Access数据库中输入信息。这些平板电脑拥有自己的数据库前端和后端副本。

我需要在每天结束时使用两个平板电脑数据库中的每个数据库中的值更新后端(在办公室计算机上)的主副本。然后将此主数据库上传到每个平板电脑,替换其不完整的版本,然后在第二天将其关闭。

我之前从未做过这种合并,也不知道从哪里开始。基本上,我需要一个查询:

  • 删除主数据库中的当前值
  • 将tablet1中的值与tablet2的值合并到主数据库

我可以删除主数据库中的当前值,因为平板电脑将包含前几天的值(因为它们有时需要参考等)。基本上,平板电脑将始终包含entire database + today's survey。只是每个平板电脑+ today's survey都不同。

有可能吗?我如何保留ID字段,因为使用KeyID存在关系?

我需要MERGE,但是没有找到任何关于它是否适用于MS Access的文档... MS似乎可以按照标准使用它们。或者MSA2010可能尚未更新以支持Merge?

1 个答案:

答案 0 :(得分:1)

我找到了一个适用于我作为绑定解决方案的解决方法。我先清空现有的Master表。然后我用:

SELECT * FROM myTable IN "LocationToTablet1/backend_tablet1.mdb"
UNION
SELECT * FROM myTable IN "LocationToTablet2/backend_tablet2.mdb"

并命名查询“myQuery”。然后

INSERT INTO myTable IN "LocationToOffice/master_backend.mdb"
SELECT * FROM [myQuery]

然而对于任何有相同问题的人来说,HansUp与SharePoint集成的解决方案似乎是一个好主意(请参阅问题的评论)。它不需要最终用户干预,而我需要在平板电脑返回办公室时手动调用这些查询。