Results 1 to 3 of 3
  1. #1
    5 Star Lounger
    Join Date
    Jul 2004
    Location
    Ohio
    Posts
    629
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Access Settings - User level (2k)

    I want hidden objects to be hidden on all user's copies of my front end database, so that if they do unhide the access database window, they can't see the tables or objects in it. Is this possible to do?
    <img src=/w3timages/blueline.gif width=33% height=2>
    <big>John</big>

  2. #2
    3 Star Lounger
    Join Date
    Dec 2001
    Location
    Royal Oak, Michigan, USA
    Posts
    255
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Access Settings - User level (2k)

    The easy answer is Yes, simply right click each table, query, form, report, etc. and select Properties and then click the 'Hidden' check box which will hide the object. The only problem is that if the user unhides the database window and on the menu bar clicks 'Tools'-'Options' and in the View tab clicks Hidden objects, they will be able to see the objects you set as 'Hidden'.
    The other option is to prohibit them from unhiding the window. Assuming you have a switchboard of some sort that opens and runs all the necessary features of your database. You can then do the following steps:
    * Create a macro titled 'AutoExec that opens your switchboard
    * Create a custom menu bar that will run any additional commands you want the user to run (print, sort, find, etc.)
    * Click on 'Tools'-'Startup' and deselct all the check boxes (including the one under Advanced>>)
    * Change the Menu Bar drop-down from (default) to the menu bar you created
    * Create a new Module and save the following code:
    >>>>>>>>>>>>
    Sub SetBypassProperty()
    Const DB_Boolean As Long = 1
    ChangeProperty "AllowBypassKey", DB_Boolean, False
    End Sub

    Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

    Change_Bye:
    Exit Function

    Change_Err:
    If Err = conPropNotFoundError Then ' Property not found.
    Set prp = dbs.CreateProperty(strPropName, _
    varPropType, varPropValue)
    dbs.Properties.Append prp
    Resume Next
    Else
    ' Unknown error.
    ChangeProperty = False
    Resume Change_Bye
    End If
    End Function
    >>>>>>>>>>>>
    * Save the Module
    * Compact and Repair the Database
    * Create a copy of your front-end (once you eliminate the ability to bypass the switchboard, it removes your ability as well...at least in this example)
    * Open the copy (the one you want to distribute) and run the 'SetBypassProperty' macro in the saved Module
    * Close and distribute
    This will eliminate the users from being able to hold the Shift key down to bypass the Switchboard from opening and it also removes the ability to use special access keys. However, they could still import features and to prevent these, look into converting it into an MDE file. However, they could still link or import the tables and to eliminate this, look into advanced security.
    Depending on how secure and locked-down you want your database, there are several available choices. Hope that helps.

  3. #3
    5 Star Lounger
    Join Date
    Jul 2004
    Location
    Ohio
    Posts
    629
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: Access Settings - User level (2k)

    thanks alot, i'll have to look through that all <img src=/S/cheers.gif border=0 alt=cheers width=30 height=16>
    <img src=/w3timages/blueline.gif width=33% height=2>
    <big>John</big>

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •