How to Password Protect a Form or Report in Microsoft Access

How to Password Protect a Form or Report in Access

by Shane Zentz
Microsoft makes doing a lot of things with databases very easy. And password protecting a form or report is no exception. With just a few lines of code in the right place you can prevent unwanted users from opening and viewing or editing data in your form or report. Just as an aside, this is not the most secure method and in fact is not really secure at all. But in order for someone to find the password (which is hard-coded into the application) they would have to have at least basic knowledge of access from the design and programming point of view, so if they are just users then chances are that they will never discover the password (by looking at the code behind the program) unless someone tells it to them or they discover it written down somewhere. Having said that, this method is still pretty useful for just average applications, like I said it is not really the most secure method, so if your application contains really sensitive data (like social security numbers or bank account numbers) then I would advise using another more secure method. But if you just need a basic password protection to protect just one or a few forms from average users then this method will work and it is also quick and very easy. So read on to see how this is done.

Open the form or report that you want to password protect in design view and find ‘form’ in the properties field (see photo 1). Then switch to the events tab. Under the events tab you will see a field called ‘on load’ (see photo 1), this is the field that controls what the form or report does when it is first loaded or opened. Here we want to add some code to the on load event so that it will first prompt the user for a password. So click on the tiny icon with the three little dots on it and on the window that pops up, select ‘code builder’. This will bring up a Visual Basic window (see photo 2) which will have a method for the ‘onload’ event preloaded. All we need to do is to add the code to this section.

 

Here is the code:
Dim PassWord As String

PassWord = InputBox(“Enter Password”)

If PassWord = “whatever password you choose here” Then’

Open FormDoCmd.OpenForm “name of the form that you want to password protect”
ElseMsgBox (“Wrong Password?”)

DoCmd.Close acForm, Me.NameEnd If

Save the code and exit and also save the changes to the form. Now try to open the form and you will get a password box before the form will open. If you enter the correct password then it will open, otherwise it will not. Another thing I should mention is that the text for the password is not dotted out or starred out like is usually is with password protection forms. I think that this can be changed but that is beyond the scope of this tutorial.
This code is pretty basic. To use this you will need to change the line that says “whatever password you choose here” to whatever you want the password to be. And then change the “name of the form that you want to password protect” to the name of your form. Now, you can change “Enter Password” to whatever message you want to appear when the password box comes up, and likewise, you can change the “Wrong Password?” part to whatever message that you want to display when the user enters the wrong password or does not enter any password at all.
So there you have it, a pretty easy and basic password protection system to password protect a form or report in Microsoft access. This will work with just about any version of Access, so give it a try. Just remember that this is not really completely secure becuase anyone who knows how can just look at the form in design view and then check the ‘onload’ event code to discover the hard-coded password, but the average user will never know how to do this anyway, so this is a reasonably decent solution.
Thanks for reading this tutorial on password protecting a form or report in a microsoft access database.

How to Create a Basic 'TEST' Database in Access

Create a basic test database in access 2010:
This tutorial covers how to create a ‘test’ database in Access 2010. You might say, why create a test database? Well, the answer is that sometimes it is much easier to start with a simple database with only a few tables and forms to see how your project will work when it is scaled to a much larger level. The main reason is simplicity and testing. Testing and coding is always much easier when working on a smaller scale. If you are familiar with programming then you know that it is easier to code one small module (or function, or method) at a time instead of trying to write the whole program line by line. It is the same principle here. So if you have a project to do in access, whether large or small, hard or easy, for work or school, then this tutorial will show you how to quickly set up a test database in Access 2010.

Let’s say, just for an example, that your project involves a large amount of data and data sets, but you are currently stuck on a certain relationship between two tables or a design problem between two tables or a programming issue between two tables. Then instead of working with a large set of data and tables (and queries, relationships, modules, ect.) it may be easier to just create two example tables that are at least similar to the ones that you are currently stuck on, and then add a little bit of test data just to work with. This should be easier than working within your complex project and then when you have the problem solved or have a worked out solution, it will be much easier to just import that solution into your project.
So for this lets assume that you are stuck on some problem that exists between one table which contains customer data and another table which contains data for a business. In this scenario, I would create a simple access test database with only two tables. The tables will be called ‘customer’ and ‘business’ to keep it pretty simple. And the tables will have the expected data fields to go with them as well. So the first step is to open access and create the two tables:

And add all the necessary fields, but remember that this is just a test so there is no need to add each and every field, we just want some example data to work with and we still want to keep it pretty simple to make it easier to work with.

Then, once you have the two tables and the data fields that correspond to those tables, now it is time to add some ‘test’ data. Just make up a few customers and a few businesses, in this case. Now we have our test database set up and we are ready to solve our problem.
Is it a relationship problem?

Is it a design problem?

Is it a module/coding problem?

As you can see it is sometimes easier and beneficial to just create a simple test database to solve a problem that would be more difficult to solve on a larger scale, then import the solution into the more complex project. So I hope that this advice will help with your next access database project or assignment.

Thanks for reading this post!

Shane Zentz