vb.net 2010同步两个access数据库

vb.net 2010同步两个access数据库,vb.net,winforms,ms-access,Vb.net,Winforms,Ms Access,我正在编写一个桌面应用程序,它使用主access数据库,该数据库将托管在一个中央服务器上,但会有一台笔记本电脑,该应用程序处于脱机模式,因此可以在异地创建记录。当笔记本电脑返回时,我希望它需要同步回主数据库 有没有人对如何做到这一点有什么建议,我已经简单地阅读了关于JRO的内容,但是有没有其他的/更好的方法 起初,我只是想编写一些自定义代码来实现这一点,但我想我应该检查一下,以确保没有什么东西已经存在。Access(至少到2003年)内置了复制数据库的功能,这将比使用自己的数据库要好得多 这里有

我正在编写一个桌面应用程序,它使用主access数据库,该数据库将托管在一个中央服务器上,但会有一台笔记本电脑,该应用程序处于脱机模式,因此可以在异地创建记录。当笔记本电脑返回时,我希望它需要同步回主数据库

有没有人对如何做到这一点有什么建议,我已经简单地阅读了关于JRO的内容,但是有没有其他的/更好的方法

起初,我只是想编写一些自定义代码来实现这一点,但我想我应该检查一下,以确保没有什么东西已经存在。

Access(至少到2003年)内置了复制数据库的功能,这将比使用自己的数据库要好得多


这里有一些关于该功能的文档:

MS Sync Framework可能是答案,但设置起来有点棘手

有与ADO.NET和MS SQL Server/SQL Server Compact兼容的,但这不是一个小组件,更像是一个多组件框架。

Jet Replication是这类场景的完美解决方案,因为您可以使用最简单的形式,即直接复制,而且不需要有任何外部依赖项

假设您的服务器名为\HomeOffice\且数据库名为“maindabase.mdb”并存储在\AccessDatabases\文件夹中,您可以在命令按钮后面使用此代码从笔记本电脑同步到服务器:

  Dim dbServer as DAO.Database

  Set dbServer = DBEngine.OpenDatabase("\\HomeOffice\AccessDatabases\MainDatabase.mdb")
  dbServer.Synchronize CurrentDB.Name
  dbServer.Close
  Set dbServer = Nothing
现在,没有错误处理,您也没有检查冲突,因此您需要做更多的工作,但这将让您从基础开始


有关Jet复制的更多信息,请参阅。超级用户问题副本:从A95开始的所有Access版本都支持Jet复制,只要您将自己限制为MDB格式。只有ACCDB格式不支持Jet复制。事实证明,我实际上是在尝试做其他事情——但如果我在同步路径上,我喜欢你的答案——谢谢你的输入!我确实错过了vb.net方面——您希望使用JRO而不是DAO(就像我的代码一样),但它几乎是相同的代码。