Link to home
Start Free TrialLog in
Avatar of Jeffrey Coachman
Jeffrey CoachmanFlag for United States of America

asked on

MSysObjects table Info needed

I run a query on the MSysObjects table in my main database to do my own searching.

From this query I generate a report of all objects matching my criteria.

Here is what I determined so far about the "Type" field in the MSysObjects table:

Tables=1
MSysDb=2
List of Object types=3 (Includes an object called a Script??)
Queries=5
Linked tables=6
Type "8" appears to have something to do with relationships. I have 2 objects in my database that are type 2
"CategoriesProducts" and "SuppliersProducts". these are relationships between the ONE tables: Suppliers and Categories, and the MANY table "Products". Yet there are similar relationships like this in my database, yet only these two are listed?
Forms=-32768
Reports=-32764
Macros=-32766
Modules=-32761
Data Access Pages=-32756

Which leads me to my question:
Does anyone know where I can get more information on the  MSysObjects table?
I have heard that it is undocumented. But some ones gotta know what Type 8 really means. And what is a "Script"? Scrips are not listed in the database window?



ASKER CERTIFIED SOLUTION
Avatar of RyanDeMougin
RyanDeMougin

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of RyanDeMougin
RyanDeMougin

Here's what I'm 99% sure the field grbit represent in MSysRelationship

DoNotEnforceReferentialIntegrity = 2^1
JoinType2 = 2^24
JoinType3 = 2^25
CascadeUpdateRelatedFields = 2^8
CascadeDeleteRelatedFields = 2^12

I would say grbit is of type long (32 bits).  So, we've got 5 of the 32 bits defined.  What the other 27 are or if they are unused or not, I don't know.

I scanned all of the other system tables for occurances of the UID of the relationships listed in MSysObjects but found none.  Perhaps they are just listed in MSysObjects so that the system knows they are there, without knowing anything about them without checking the realtionship  table.  

If you open MSysObjects table, and open the relationships form, then delete or otherwise change a relationship, the record in MSysObjects representing the relationship will be deleted and replaced with a new record.  You can see it get marked #deleted.  This also happens in the relationships table.

Basically, what you just got where my observations.  Hope this helps.
Avatar of Jeffrey Coachman

ASKER

Thanks for the info.

One thing though, I am running Access 2000 (9.0.2720) and I do not have a "grbit" field in my MSysObjects table?

Here are my Fields:
Connect
Database
DateCreate
DateUpdate
Flags
ForeignName
ID (Primary Key)
Lv
LvExtra
LvModule
LvProp
Name
Owner
ParentID
RmtInfoLong
RmtInfoShort
Type

Perhaps the "grbit" field is one of the above, don't worry though you have given me lots of info so far

Thanks!
boaq2000,

   The grbit field is in the MSysRelationships system table.  Which as far as I can tell is where the complete definition of a relationship is.  I beleive that in MSysObjects, relationships are only listed as 'being in the database', nothing much more.

  Are you planning on documenting and publishing this info on Access system tables?  Please keep me updated on how this goes.  I can appreciate this type of endeavor.

-R
RyanDeMougin,

I was, at first, only interested in this project because I needed the info for my own database. But since then I have become more curious because of the lack of information out there.