this is a good idea, but I have some smart users that know how to access the database itself without the shortcut. How do I account for that security?
Thanks for your help.
Main Topics
Browse All TopicsI need user-level security on a single database, and not the access program itself. Would this require an extensive knowledge of VBA or is there a simple solution to my dilemna?
The Tools >> Security >> blah blah sets it for the access program. I need users to be able to access other databases without need to input a username and id.
If this requires the use of VBA please leave a few book titles.
Thanks.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
I always disable the Shift key for my apps (so the user can't press the shift key to bypass the autoexec) and under Tools/Startup I uncheck all the options except for Allow Full Menus. I also uncheck the box for displaying the database window. I then place code on the OnClose procedure for the main form (and any others that apply) that checks the Environ username. If it is not equal to my username, the application quits. I also create a 'backdoor' that allows me to enter a password somewhere on the form. The same OnClose code checks for that password as well. Therefore, if the user isn't me and if the user doesn't know the existence of the backdoor (and the password), the application will exit.
Oops! Make that the OnLoad event. I forgot that you don't want users to be able to access the application. I use the same code in the OnClose event to prevent users from accessing the database window. Question: don't you have some kind of network security you can use to prevent 'unauthorized' access to your database(s)? Or perhaps I have misunderstood the intent of your question...
You don't need EXTENSIVE VB to do this. What you want to do is create a form for entering a username and password. Set this form as the start-up form. Disable all shortcut and default menus. Create a table with usernames and passwords for your users. In the password field, set the Input Mask to 'Password'. Put a command button on the start-up form and for the OnClick event, place code similar to this (just change the variables for your situation):
Private Sub Command4_Click()
Dim dbs As Database, rst As Recordset, sql As String
'Me.VerPW is a text box on the form user enters password
'Me.uName is a text box on form user enters username
sql = "SELECT UserName, pWord FROM UsersTbl;"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(sql)
Do While Not rst.EOF
If Me.uName = rst("UserName") Then
If Me.VerPW = rst("pWord") Then
'The user is in at this point
Else: MsgBox "Password incorrect"
Exit Sub
End If
End If
rst.MoveNext
Loop
MsgBox "Username not found"
Exit Function
End Sub
This is the very basic code. You will want to spice it
up a bit, but this is the answer to .mdb-specific security
without using the .mdw workgroup admin method.
I disagree. If you actually want your database to be secure, you'll need to use Access' built-in security. The process for setting that up is not exceedingly difficult and involves no coding. I have a step-by-step process I can e-mail you, if you like. The key, as enite said, is to establish a second workgroup file (mdw). Then you'll have one secure "version" of Access and another "unsecure" version that anyone can use. *And* this approach will prevent anyone from accessing your database in any way: through Explorer, via importing or linking to your tables, any way. The other comments above only provide security if a user tries to enter your database directly.
Access' built-in security can be a headache. We try not to use it unless the user explicitly requests it. I've created some of the 'lock-down' methods I outlined earlier. By using the Environ$("username") to check for a specific username, you can prevent users from opening the database even through Explorer (I just tested it with one of my users and she was unable to open the database.)
Actually jkpcs had the answer I was looking for. Go ahead and take the points jkpcs. Sorry it took me so long, I was getting an error when I attempted to connect to this forum.
I do have security on my server but unfortunately this certain location has a few people that are in the same group, and rather then creating a new group I much rather have a userlevel security ate the db level.
About people possibly linking to the tables, all you need to do is change the property to hide the tables. You cant link to a hidden table and if you are not the owner of the db you cant change the property back nor click on the show hidden object feature.
something is strange with EE here . . . I posted a comment on Monday that isn't showing up. Anyway, what I said was:
as enite says, if you want real security, you'll have to go with Access' model. What the other comments will do is help provide some sort of "security" if someone tries to open your database directly, but it won't do anything if they try to import data, etc. If you set up Access security well, users *will not* be able to do anything to the database that you don't want them to.
I have a step-by-step security handout I can send you, rb982996, if you like. Just post your e-mail address if you'd like a copy. (It's in Word 97 format.)
GREETINGS!
This question was awarded, but never cleared due to the JSP-500 errors of that time. It was "stuck" against userID -1 versus the intended expert whom you awarded. This corrects the problem and the expert will now receive these points; points verified.
Please click on your Member Profile and select "View Question History" to navigate through any open or locked questions you may have to update and finalize them. If you are an EE Pro user, you can also choose Power Search to find all your open questions.
This is the Community Support link, if help is needed, along with the link to All Topics which reflects many TAs recently added.
http://www.experts-exchang
http://www.experts-exchang
Thank you,
Moondancer
Moderator @ Experts Exchange
Business Accounts
Answer for Membership
by: enitePosted on 1999-08-30 at 11:06:03ID: 2006231
Try the following
fice\msacc ess.exe" "c:\path to database.mdb" /wrkgrp "c:\path\secure.mdw"(This specifies to open access, the database and the specific, secure mdw you wish to use)
1. To do this you'll need to have 2 mdw's. The default, unsecured one called system.mdw and the second one used to open the one database you want security on(secure.mdw).
2. Make sure Access is joined to the unsecure mdw.
3. Create a shortcut whose target is "c:\program...\msoffice\of
This will allow your users to open all other databases without typing in userid and pw, but when they need to open the one secure database they will be prompted for id and password.