have all queries, forms, reports and modules in one db (called FE or Front End) and just tables in another (called BE or Back End).
The BE should be located on your network and each user has a copy of the FE on their computer.
The FE is linked to the BE (see External Data tab)
To prevent users modifying forms, reports and modules the FE should be converted to an ACCDE.
To prevent users modifying or even seeing the queries and tables there are a number of options depending on the level of 'protection' required and is really the subject of separate thread - there are many threads on this subject within this forum.
The simplest is to set the hidden property of tables and queries to true (right click on a table, select properties and tick the hidden option)
Next is to prefix tables and queries with Usys which means they are treated like system files which can only be seen if the 'show system files option is ticked.
Next option is to hide the navigation window and there is vba code you can write to disable the override on opening the db (overide is to hold down the shift key when opening access).
Another option is to hide the access window completely - this requires your forms and reports to be modal and popup and again, you will find threads on this option on this forum