Are your users using an Access "application", or are they just opening your
Access database?
You can ensure that your users don't have access to the "query" by hiding
the navPane and only allowing them to perform functions form within your
forms. If you go this route, you should also uncheck the "Use Access Special
Keys", "Display Navigation Pane" and possibly some of the other options in
the Access Options (Current Database).
I generally have a list of reports that are available for use. I put these
in a table with a ReportName, ReportTitle and you could easily add another
field for ReportWho (normally this would be "All", but you could also enter
the persons UserId in this field). Then, in the query for the list, you
would use something like:
Select ReportName, ReportTitle
FROM tbl_Reports
WHERE ReportWho = "All" OR ReportWho = fOSUserName()
You would also have to add the function fOSUserName (which you can get from
http://www.mvps.org/access/api/api0008.htm) to your database.