If the ultimate goal is to create a form and allow the user to see and use the form but not make any changes, the following would make it rather impossible to change the original "main" form you use.
1) Open your database
2) Follow DCurtis' idea on the form set up
3) Make sure there is a button to close the database on the form
4) Use Tool - Database Utilities - Make MDE file.
5) Open MDE file
6) Delete all tables
7) File - Link tables - back to original database
8) In the MDE file, right click - Properties - on each item you wish to hide (tables/queries) and check "Hidden"
9) New macro on MDE file:
Name: AutoExec
Action: OpenForm
Form Name: "Name of your Form"
Action: Maximize
8) Then have the "restricted" user copy the MDE copy onto their desktop or another destination.
The above will:
A) Update the tables on the original database (the unrestriced one)
B) Automatically open the database of the restricted user onto the form
C) Allow restricted user to do what you give them permission to do (Via add record, edit record, delete, etc.)
D) By Hidding the tables and queries, it sometimes deters the "exporing" if they happen to find away around the startup and close button.
E) Also, this will keep the format of the form the same. By giving the user a MDE file, you are giving them a file to use not change. MDE files are basically read only. They can see the form but not change the design or any code you may have written even if they find away around the AutoExec and/or "Close" button.
This is what I have found to be the quickest and best way to secure a DB that is not "Critical". For "Critical" databases, VBA code works best. However, please note that if you use the MDE file, any time you need to change the form, a new MDE file will be needed.
Hope this helps,
PBrown
Thank you for any and all help,
PBrown