In response to Sal's point from 12/3/3, he is right about a system
table in MS-Access that is used internally by Access which indicates
the different object names and types within an MDB. The name of
that table is MSysObjects.
MSys* tables (used internally by Access) and USys* tables (created by
a developer or any user) are both considered system tables and are
not normally displayed under the tables collection in the database
window. To see at least the MSys* tables in any Access database,
all you need to do is go to Tools | Options, click the "View" tab,
and click the "System objects" checkbox to true.
The object name is under the "Name" column and its type is under the
"Type" column. Here are some of the primary object types and their
descriptions:
1 = Native (non-linked) table
4 = ODBC-linked table
5 = Query
6 = Access-linked table
-32756 = Data-Access Page
-32761 = Module
-32764 = Report
-32766 = Macro
-32768 = Form
This table also includes information relating to the connect string
(for ODBC-linked tables), database (for Access-linked tables),
date/time created, and date/time updated as well. To get a "quickie"
list of all objects listed by type in an Access MDB database, you
can run the following query:
SELECT Type, Name
FROM MSysObjects
ORDER BY Type, Name;
Keep in mind that query objects are more or less the equivalent of
views like in SQL Server, etc.
Also, a couple other MSys* system tables include MSysRelationships
which is used to track ALL able relationships within your Access
database, and MSysIMEXSpecs and MSysIMEXColumns which are both used
to store information about import and export definitions you create
within your Access database.
And no need to worry about destroying anything within these tables -
you may only view/read this information because Access maintains the
full update rights to all MSys* tables. However, you actually update
MSysIMEX* tables whenever you create, update, or delete import or
export specs - you're just forced to use the user-interface provided
within Access.
Lastly, USys* tables can be useful if you want to deploy a user
application where the user may be able to see the database window,
but don't want that person to see data that can be used for things
like application parameters and custom run-time configuration
information. Of course, they could see these if they selected to
view system objects via the toolbar.
Warren
:D
|