One standard solution is to create two databases. Your back end database which contains all of the tables and would be sited on a server somewhere. If you’ve got your structure right, the number of times you would need to take the back end off-line for upgrades should be a lot smaller.
You would also need to construct a front end database which would contain links to the tables and all of your queries, forms, code etc. etc.
The joy of this solution is that you can have different front ends for different users, a protected back end and also you can distribute the new front end in a number of managable ways eg. executable zip which can be run by the user? overnight scheduler task to bring the local pc up to date?
And lastly, it means that you can more effectively manage version control, testing environments and so on.
Hope this helps