Hi DJH,
You have several issues:
1) Your application/database MUST have some logic that traps non-authorized
users (and I suggest 'ADMIN' as a non-authorized user) and kicks them out.
This allows anyone on any PC to run MSAccess in their world but stops them
from entering your application/database world... regardless of what xxxSYSTEM.
mdw they are attached to.
2) In the SHORTCUT, you need to define the a) MSAccess version to
run, b) the database to open and c) the xxxxSYSTEM.mdw file to run under.
This forces the environment you want to operate in, including the log-in
dialogue window. You can copy any current SYSTEM.mdw to a specific folder
location, change the name, address it in your SHORTCUT statement, and
maintain it using your DoCmd.RunCommand >acCMdWorkgroupAdministrator. There
is no join function (which only sets the default MSAccess user's system-
registry entry) because it is controlled in the SHORTCUT statement as an
override to the system-registry.
3) The trap for non-authorized users MUST be in your AUTOEXEC macro and will
be a pretty elaborate process calling either VBA logic to identify the user
(=CurrentUser()) or some series of table-lookup records where you can store
legal users for authorization.
I have about 300 hours of developing this (and more user control) logic since
MSAccess2, (through 95, 97, 2000, XP, 2003 and 2007) and I use it extensively
for my clients. It is well documented and contained for an experienced
developer to work with. I hesitate to distribute it because it is difficult
for inexperienced developers to support. If interested in more one-on-one
discussion, we might open another channel of communication to accomplish that.
........Ron
I know I could do the shortcut, but that doesn't prevent new users to the PC
who have not joined the appropriate workgroup there from opening the database
directly without getting prompted to login and get the correct permissions
for their username.
From the shortcut command given, I see that you referenced a .accdb file.
We need to keep the network backend data mdb and workgroup mdw in Access 97
format during this transition from 97 to 2007 on our workstations. For those
PCs with Access 2003 or 2007, I have a 2000 version MDB frontend on their c:
drive.
I was wondering where the workgroup join information is stored for each user
on the PC, and if there was anyway to set it so that any user who logs into a
specific PC is automatically joined to the workgroup. The DoCmd.RunCommand
acCMdWorkgroupAdministrator works fine in Access 2007 for the user who is
logged in when the command is executed, but it doesn't carry on to other
users who may log into that PC.
[quoted text clipped - 23 lines]