Interesting question:
Synchronising data can get quite complex as overwriting data updated by other uses can easily happen, especially if this is done by table row. Ideally you would have a last updated date on the row for each field creating latest-wins scenario when synchronising with the online database.
A simple workflow, keeping things simple:
The online database would be the master database, where each desktop will sync from time to time, I guess the desktop will need to send all changes since the last sync date to update the Master and then download all records (new and updated as these could have been changed by other users) from the Master from that last sync date.
If the desktop is connected to the internet, it might be worth connecting directly to the database. Alternatively if its a laptop thats on the go, I guess the sync setup would be required.