Question disable navigation pane, db window, tool bars to users

arian

Registered User.
Local time
Today, 12:46
Joined
Feb 28, 2013
Messages
11
I use Access 2007.
I have a db split in FE(forms, queries, vbcode) & BE(tables only).
I want users not to be able to view or explore the tables, the queries, the form design and details, in both Ends.

Unfortunately, even disabling via VB code the menus, the db window, the tool & status bars, they appear and are accessible to the users (it only works in a non-split db, turned to an accde).

How can I disable any view on forms, queries, vbcode and tables details and data to users, in both FE and BE and only allow them to add data through specific form?
 
Try hiding the Navigation Pane, Toolbars.. It should be under File -> Options -> Current Database..

Uncheck Display Navigation Pane, Allow Full Menus, Allow Default Shortcut Menus.. Close and reopen the DB..
 
You could hide the access window and password protect the backend

Note: All forms would need to have popup and modal enabled

Code:
Private Declare PtrSafe Function ShowWindowAsync Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Boolean
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
 
and in you first form to open (a switchboard perhaps?)
in the onload event put     
 
ShowWindowAsync Application.hWndAccessApp(), SW_HIDE    
 
you probably will also want to switch this off at some point in which case use:
 
ShowWindowAsync Application.hWndAccessApp(), SW_SHOW


 
Dear CJ
what kind of identifier is the "PtrSafe" ?
 
You only need it if you are developing for 64bit machines - I tend to use it all the time because some of my clients are on 32bit and others on 64bit so you can remove it if not required
 
I assume that there is no other way to hide the tables in the BE than to set a password, isn't it so?
And If I set a password, won't create a trouble each time users insert new data?
 
I assume that there is no other way to hide the tables in the BE than to set a password, isn't it so?
Well if you Password protect, there will be lesser possibility of accessing the Tables in the first place.. THIS IS ONLY A SUGGESTION !! You can use the same code CJ_London provided in an Invisible Form for the backend.. But I will wait for CJ_London to get to you with that..
And If I set a password, won't create a trouble each time users insert new data?
No problem with Inserting New data, however since your Front end is already Linked with no password.. If you apply a password to the backend.. Make sure you RELINK them..
 
Thanks Paul,
Before posting my question I had aleady read many threads regarding the BE security. This is why I wrote "..no other way.."
 
But, yet, I have recently read a thread with a similar issue. But I cannot recur to the solution which has reference to the "utteraccess" site
 
Last edited:
As pr2-eugin says - you will need to relink at which point you will be prompted for the passwords, but once linked you won't be prompted again.

Regards putting an invisible form on the backend, there is no reason why not.

I think you just have to try a number of different ways and see what works for you.

This is a link to a thread I contributed to a few days ago on a similar subject. It may be over the top for what you require but it might give you more ideas. You want #3

http://www.access-programmers.co.uk/forums/showthread.php?p=1240580#post1240580
 
Hello,
what will be the issues if a db is not spit in FE-BE, and is being used simultaneously by 2-3 people?
I would like to understand the operational need behind not splitting the db.
Is Splitting a matter of product specification or it is just a *better* way to handle the data entry? Is it so restricting or prohibitive to use a single instance of the db?
 
This is really a question to put in another thread

I would like to understand the operational need behind not splitting the db.

it is better to have a separate BE and FE for several reasons. for example

  • Safety in the event of file corruption
  • Ease of maintenance - it is strongly recommended you do not maintain the working copy directly but on a development version which can be 'swapped in' once testing is complete - you will not, in any event be able to do any changes if others are logged in
  • security - you can password protect the backend and accde the front end
Is it so restricting or prohibitive to use a single instance of the db?

If you want to use a single instance - that is up to you. All I can say is, you'll soon learn it is not the way to go.

Please put any further questions along this line on a new thread since this is not related to the post header
 

Users who are viewing this thread

Back
Top Bottom