In essence, what you describe is like re-inventing the wheel except you don't want to let users see everything, just selected things.
Theoretically, you could start from MSysObjects, a system table that is usually not visible. However, even touching this table can be fraught with peril, as any change made to MSysObjects that DIDN'T go through the preferred Access interface could possibly break your DB on the spot and little or no chance of recovery. It is incredibly dangerous to get into. I've got 20 years of experience with Access and I have no interest in stepping into that particular can of worms.
I suspect that you would do FAR better if instead of going through the back door of MSysObjects, you should decide ahead of time what tables and fields you will allow your users to see and make a list that DIDN'T come from delving into system tables. You can also try looking at stepping through the AllTables collection and, for each table, step through the Fields collection. Which means that for reading, you would look at topics of Access
Collections and the
AllTables collection and the
Fields collection to make your lists of things that users can select. Which means you would probably have to make a
cascading combo box setup where your list of tables is the first combo and your list of fields (grouped by tables in which they reside) would be the second level of the cascade.
Your project will allow selection, but the question will then become whether your users need to filter stuff, because building a WHERE clause can be... interesting. You will find out why a query built using the query design grid has so MANY frickin' parentheses when you switch to SQL view.
Here's how you find AllTables:
Office VBA reference topic
docs.microsoft.com
You will need to be able to find out about the structure of things, so a LOT of browsing in this topic and its links will help a lot.
This section of the Access VBA Reference contains documentation for all the objects, properties, methods, and events contained in the Access object model.
docs.microsoft.com
Start from the object model and then use the list of topics on the left to locate specific topics of interest.
I wish you luck in this. Over 20 years ago we started doing something similar for our ORACLE database of U.S. Navy Reserve personnel but things got complex so fast that we had to scrap it. Again, the goal was to allow users to select the fields they wanted from the tables they wanted without giving them a view into the internal structure.
The biggest problem was with users who suggested, then requested, and then finally DEMANDED more. But of course, the problem for us was that it was a personnel database and a lot of what they wanted was covered by the Privacy Act or by provisions of HIPAA and we could not allow wide-open access without going through proper channels. Going through MSysObjects is a technical can of worms, but giving users a little bit of what they want is a PROCEDURAL can of worms and a lifetime guarantee of employment but at the same time a dead end for your career because the folks who manage the system won't be able to let you go.