Thanks guys,
This was the way I was thinking except that it means that I have more screens to create and the security of the database becomes more critical.
The compromise I have been thinking about is that
a) I provide a CSV on demand which they download and merge into the database. The on-line table is then emptied.
b) they then upload an extract of the database
c) when someone wants to query their booking I first look in the 'new entries' and if its not there, look in the confirmed bookings. Any changes get posted as completely new entries back to the 'new bookings table with a flag to say its an update.
Still happy to hear any further ideas.
Mark