Julie said:
I want to create a database with Access and I want some specific
characteristics for the security aspect.
I want that the database can be opened by anyone in "read only" but, if
someone wants to apply modifications, he has to enter a password.
Hum, if you use the built-in ms-access security, then the user will have to
exit, and then re-enter with a user name that has the correct permissions.
So, yes..you can setup the system to prompt the user..but this occurs at
logon time..and NOT WHILE the user is in the database.
Only some
specific persons would know this password and could change the data in the
file.
Probably better to the above is simply have some users ID's that can modify
the data..and the rest of the users ID cannot modify the data. This is
likely the best approach, and you would not be restricted to "one" password.
The database has to allow a maximum of 1 person at at time in write
mode. If someone tries to log-in into write mode while someone else is
already modifying the data file, then i want this user to know he can only
log-in in "read only" mode.
Hum, the above issue has absolute nothing in common with the first issue of
security. In other words, the security mechanizes built into ms-access (or
just about any system on planet earth) will restrict right to users..but
certainly not based on the fact that other users are modifying the data.
However, if you set a form to lock "all records" in the data tab..then this
should do the trick, and you don't have to setup anything. Who ever starts
editing the data will thus get the table to themselves. However, this will
also lock out all users from reading that data also.
So, most systems (database) can setup security to prevent users from editing
data. And, most database systems can grab a table for a use by only ONE
user. However, once that is grabbed, then others can't even look at the
table.
What this means to get the functionality you want..you need to roll your own
lock table. Basically you would use it as a sophomore..and check for a user
value in this ONE record table..and if the user is not in that table..then
you stick in the name..and you got the table locked.
So, to do this in a smooth fashion...I would make my own locking routines..
There is discussions in this link as to how one could do this:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=47300&ixReplies=10