There are a couple of ways you can accomplish this.
One is to split the database to a front end & back end. The tables reside in the back end. Then you can give that file a read-only attribute. All of your queries, reports, macros, etc. reside in the front end.
The other, is quite similiar. Move those tables that you want read-only to a separate database and give it the read only attribute. The main database would point to (link) the tables in the read only database.
There is yet another way that I have not personally done but have read a little about and that involves setting it up as a multi-user and giving 'priveleges' to certain users.
Hope this helps.
Larry