Shane
Shane

Reputation: 1603

vb.net 2010 Synchronize two access databases

I'm writing a desktop application that uses the main access database that will be hosted on a central server, but there will be a laptop with the app on that has an offline mode so records can be created offsite. When the laptop returns I want it needs to be synced back to the main database.

Has anybody got any pointers on a way to do this, I've briefly read about JRO but is there an alternative / better method?

Originally, I was just going to write some custom code to do this, but thought I'd check to make sure there wasn't something already out there.

Upvotes: 2

Views: 2913

Answers (4)

David-W-Fenton
David-W-Fenton

Reputation: 23067

Jet Replication is a perfect solution for this kind of scenario, because you can use the simplest form of it, Direct Replication, and don't need to have any outside dependencies.

Assuming your server is named \HomeOffice\ and the database is named "MainDatabase.mdb" and is stored in the \AccessDatabases\ folder, you could use this code behind a command button to synchronize from the laptop to the server:

  Dim dbServer as DAO.Database

  Set dbServer = DBEngine.OpenDatabase("\\HomeOffice\AccessDatabases\MainDatabase.mdb")
  dbServer.Synchronize CurrentDB.Name
  dbServer.Close
  Set dbServer = Nothing

Now, there's no error handling, and you haven't checked for conflicts, so you'd need to do more than that, but that would get you started with the basics.

See the Jet Replication Wiki for lots more information on Jet Replication.

Upvotes: 3

Matthieu
Matthieu

Reputation: 4620

There is the Microsoft Sync Framework that is compatible with ADO.NET and MS SQL Server / SQL Server Compact, but that's not a small component, more like a multi-component framework.

Upvotes: 0

Chris Pont
Chris Pont

Reputation: 791

MS Sync Framework could be the answer, but it's a bit tricky to set up... http://msdn.microsoft.com/en-us/sync/bb821992

Upvotes: 0

JohnFx
JohnFx

Reputation: 34917

Access (at least through 2003) has built in capabilities to replicate a database that would be far better to use than rolling your own.

Here's some documentation on that feature: Database Replication

Upvotes: 3

Related Questions