Report access and Security questions

SamCec

New member
Local time
Today, 05:53
Joined
Jul 22, 2010
Messages
8
Hi:
I'm new to Access and installed Access 2003 to my system. I developed a database (mdb), some Reports and some Queries.

This database, reports and queries must be given to 1/2 dozen people.

My first question is: Must they have MS Access on their system in order to use the reports, the underlying queries and data?

My next question is: Is there any way to place the database in a "read-only" mode? I do NOT want anyone else to update the database in any way. I need exclusive control. The ONLY reason I need to distribute it is to give them access to the reports.

Thanks,
Sam
 
Create a user menu form that only includes the reporting side of the appliation and get it to test for which computer name has opened the application if it not your own then load this menu otherwise load the full menu.

Also if the users do not have Access on their machines they will need a runtime version of the application deployed on their machines.
 
Create a user menu form that only includes the reporting side of the appliation and get it to test for which computer name has opened the application if it not your own then load this menu otherwise load the full menu.

Also if the users do not have Access on their machines they will need a runtime version of the application deployed on their machines.

DCrake: Thank you for the reply but I need to ask you or other members of this forum to help me do what you suggested above. I have no idea how to write the code and no idea how to tell the system "it's read only".


If Access or the runtime version is not on the User's PC, will they be prompted to install it or do they need to know the address of where it is?

Thanks,
Sam
 
If you are using a LAN environment an alternative is to query the database from excel using microsoft query. This allows users who are unfamilar with access to see a report in excel. The reports can be refreshed while in excel to get real time data. If you are using excel 2007 you will find it under the data tab but make sure you choose from other sources which will open MS Query. Then choose access database. If you just use the default from access query it will prevent you from performing any maintenance on the database as long as the user has the excel spreadsheet open. Excel 2003 only has the option to query through MS Query.
 
Dave H. and others.

I should have clarified this in my original post-- This is not being done on any type of network. Mine plus the other 1/2 dozen users I mentioned are all using standalone (home) PC's.

Sam
 
Sam, your users will need SOMETHING on their local machines to view these reports. They must have Access, Access Run-Time, or (as DCrake pointed out) you can do it with MS Query if you have a way to display the results, such as Excel.

Making a database read-only to a given set of users means you must know who they are when they log in UNLESS you want to build two front-end databases, one for yourself and one for reports only. Then you would distribute the reports-only DB to your users. You would need to look into a switchboard situation, I think, to control user access to the data. Read up on that topic.

If you don't hide the database in some way from your front-end, your security requirements will not work like you want. Anytime the end user can see the database window, you are already in trouble if you had security requirements.
 
After reading the above suggestions, I was wondering if it is possible to do this:

In the LOAD event of the MAIN form, write some code that would check for the Computer-Name. If the routine is being run from that computer, allow updates to the db; if it is not, the db is READ-ONLY.

If you think this would work, I need help writing that code.

Thanks,
Sam
 
You cannot make a db read only once it is opened. You can make the data in the form read only by locking all of the text boxes. But you still have to add some code and adjust some startup settings to keep the users out of the database window to access the db objects. Unless you are using workgroup security [Access 2003 or older] you will not be able to prevent a user from linking to the tables or importing the db objects.
 
You cannot make a db read only once it is opened. You can make the data in the form read only by locking all of the text boxes. But you still have to add some code and adjust some startup settings to keep the users out of the database window to access the db objects. Unless you are using workgroup security [Access 2003 or older] you will not be able to prevent a user from linking to the tables or importing the db objects.

I saw the property called "Locked" and another one called "Enabled". What one is used, I presume "Locked".

Can you or someone else show be how to get the current "Computer-Name"? In coding, I can then compare a literal to that computer name. Of course, if I get an un-equal condition, I can then lock (or disable) the text boxes.

Sam
 
Search for the Environ() function for that will get you the users computer name and more.
 
Search for the Environ() function for that will get you the users computer name and more.
Immediately under the "General Declaration" section of my Main Form, I added this code:
Code:
Private Declare Function apiGetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function fOSMachineName() As String
'Returns the computername
    Dim lngLen As Long, lngX As Long
    Dim strCompName As String
    lngLen = 16
    strCompName = String$(lngLen, 0)
    lngX = apiGetComputerName(strCompName, lngLen)
    If lngX <> 0 Then
        fOSMachineName = Left$(strCompName, lngLen)
    Else
        fOSMachineName = ""
    End If
End Function
On the main Form, I put a TEXT BOX. In the property list "Control Source", I placed the function name "fOSMachineName" (without the quotes).

When I start the application and the Main Form shows up, in this TEXT BOX I am getting "#Name?"

Can you please tell me what I am doing wrong?

Thanks,
Sam
 

Users who are viewing this thread

Back
Top Bottom