跨远程Access数据库同步表

时间:2010-03-30 12:18:50

标签: database ms-access merge auto-increment

我通过提供Access DB来管理各种类型的请求来帮助我们开展业务。由于他们是一家建筑公司,他们在建筑工地的“办公室”中有一台机器,在主办公室有3台机器。现场的机器没有互联网连接。

是否有任何(相当简单的)方法可以经常同步异地和现场数据库?我意识到表可以合并,但每个都有一个自动增量字段,必须在实例之间同步(即合并两个表时,应根据记录组合重新分配自动增量)。

提前干杯,

2 个答案:

答案 0 :(得分:1)

Jet Replication是一个答案,但不是一个简单的答案,因为您必须使用间接或Internet复制的远程位置,这两者都非常复杂,需要定期维护才能保持可靠运行。也就是说,间接复制非常有效(我从未使用过互联网复制,因为对IIS的硬连线依赖,我认为这是不可接受的)。

有关Jet Replication主题的一站式购物,请参阅Jet Replication Wiki

微软正逐步逐步取消对Access中Jet复制的支持(虽然我希望只要支持MDB文件而不进行转换就可以支持它),因此更好的解决方案可能是使用Microsoft提供的工具替换Jet复制提供的功能的地方。当然,这将是Sharepoint。在A2007中,Sharepoint太不足以成为Jet复制的正确替代品,但从A2010和Sharepoint 2010开始,所有这些都发生了变化。

如果我有一个新客户来找我这个要求,即使我有多年的Jet复制经验,我也会推荐A2010和Sharepoint 2010作为问题的解决方案,并会说等待。

可能是客户不想为Sharepoint服务器提供支持,在这种情况下,可以使用托管的Sharepoint,这应该是在5月Office 2010发布后不久支持Sharepoing 2010.

当然,也可以手动编程同步,但这在多主场景中非常复杂。但是,如果两个数据库中的记录不重叠(即,在另一个数据库中创建的记录未在另一个数据库中更新,或者换句话说,它主要是每个数据库的仅添加应用程序),那么问题并不是那么糟糕。删除是一个更难的问题,但不是无法解决的。

答案 1 :(得分:0)

对于Autonumber PK字段,请使用ReplicationID(GUID)而不是long,以便数字在数据库的所有副本中都是唯一的,即使它们已断开连接。

使用Access进行复制有很多选项。这篇文章是为了帮助您入门 Understanding Access Replication