同步MS Access数据库文件

时间:2010-07-15 07:30:47

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

我正在开发一个包含大约10个表的数据库。基本上它将用于2或3个遥远的地理位置(我们称之为A,B和C)。所需的工作流程如下: A,B和C应始终具有相同的数据库。因此,当A做任何更改时,他应该能够将这些更改发送到B和C.通过电子邮件发送整个mdb文件,因为它的大小为15 + mb,所以没有意义。所以我想将新的附加记录和更改仅发送给B和C. B和C的变更也应该反映给其他各方。我怎样才能做到这一点? 我有一些想法,但我知道如何实现它。

解决方案'A' - 仅将数据表导出到xls文件中并通过电子邮件发送。但是将表导入mdb文件可能有点复杂吗?随着时间的推移,xls is file也会变得越来越大。

解决方案'B' - 尝试仅提取更改并仅通过电子邮件发送新部件? (但如何提取那些)

解决方案'C' - 找到将所有用户同步到同一数据库(存储)位置的某种方法。我想通过将表存储在母公司服务器(也在海外)的共享驱动器中来考虑前端/后端拆分解决方案。但是位置之间的网络连接非常慢,我不知道需要多少带宽。

任何推荐都是最受欢迎的!

3 个答案:

答案 0 :(得分:4)

关于复制信息的来源,请从我的Jet Replication Wiki开始。

但我永远不会为你的场景推荐Jet复制。我目前推荐它的唯一环境(我自1997年以来一直在做复制应用程序,并且仍然有几个在生产中使用)是为了支持笔记本电脑用户,他们必须处理与任何网络断开连接的现场数据,并返回到家庭办公室和母船直接同步。

使用Access应用程序的最简单的解决方案是在Windows Terminal Server / Citrix上托管应用程序,用户可以通过远程桌面连接或使用Sharepoint运行它。终端服务器/ Citrix解决方案无法为断开连接的用户提供便利,但Sharepoint可以在连接时适应脱机使用和同步更改。 Access 2010和Sharepoint 2010提供了许多新功能,包括更好的架构设计,相当于触发器和大大改进的大型Sharepoint列表的性能,因此如果您选择Sharepoint,您想要使用A2010,这是我的明智之举。和Sharepoint 2010。

虽然可以通过Jet Replication执行您想要的操作,但它需要在服务器和客户端上进行大量设置,并且相对较脆弱(如果您使用间接复制,则不是在数据完整性方面(因为您应该使用),但在网络可靠性方面) - 运动部件太多,故障点太多。

Windows终端服务器/ Citrix是迄今为止最简单的,移动部件最少且管理完全集中,并且在相对较小的投资下运行良好。

Sharepoint比WTS / Citrix更复杂,但是比Jet Replication解决方案更简单,更集中。

如果是我,如果不需要断开连接,我可能会选择WTS / Citrix,但是我会对尝试A2010 / Sharepoint 2010感到垂涎欲滴。如果需要断开连接使用,那么我肯定会去Sharepoint路线。

答案 1 :(得分:2)

答案 2 :(得分:0)

我做了一段时间以来,但在类似的情况下,间接复制方法对我来说效果很好。

需要设置一些东西。以前的文件令人骇人听闻,但我发现Michael Kaplan(又名Michka)撰写的文章引导我了解如何做到这一点。

如果您的最终环境相当稳定,那么请使用Access。如果没有,那么我建议你采纳HansUp的建议并使用SQL Server或SharePoint。

请注意:如果您在Access 2007或更高版本中工作,则不会直接支持复制,并且您必须自己滚动自己的点点滴滴。如果你使用的是早期的安装,你会没事的,但是留出时间让你有些头疼。