John W. Vinson said:
Split the database.
The tables should be on a shared backend on the server. Each user should -
I'd
say MUST - have their own copy of the frontend, a database containing
links to
the tables and all the forms, reports, queries and code.
You can set up the frontend basing the forms on read-only queries so the
users
won't be able to mess with the data.
See
http://www.granite.ab.ca/access/splitapp.htm for a discussion.
This prevents users from accidentally editing data, but if you need to
securely prevent a malicious user from updating, you might consider SQL
Server (including the free Express edition) for the backend data. With SQL
Server it's very simple to assign robust security permissions. You can
assign reasonably robust security with an Access backend also, but support
was dropped from the Access 2007 .accdb format and it was never easy to work
with.
If you can do your updates offline, you might be able to put the backend
database on a read-only share with read-only file system permissions for the
users and write permission for you. I haven't tested that and it might cause
problems for multiple users. When you update data, you would copy your
master copy to the server, at a time when no users were in the system. That
would also be secure, but not so convenient if you need to update data
frequently.