A family of Microsoft relational database management systems designed for ease of use.
Only the 7 tables I mentioned should have an index named "Id". They should also have a field named "Id", on which the index is set. If any of those 7 tables does not have an index named "Id", it is a result of corruption.
Do not under any circumstances try to create a new field in any of the system tables. Do not, even as an attempt to repair corruption, try to create a new index on any system table that has all the indexes it's supposed to have.
In an attempt to repair corruption, working on a copy of the database, it is conceivable that you could repair the damage just by creating the "Id" index on one of those 7 tables, if it is missing. In all of those 7 tables, the index name "Id" should be on the "Id" field, and should be the primary key of the table, with the following characteristics:
- Primary = Yes
- Unique = Yes
- Ignore Nulls = No
In all of these 7 tables except for MSysObjects, the Id field itself is an autonumber field; in MSysObjects, it is a Number/Long Integer field.
In my experience, there is usually small chance of repairing the corruption in this situation just by creating the missing index. The absence of the primary key field may have allowed the creation of duplicate values, in MSysObjects in particular, preventing you from creating a unique index on that field. Also, because the various system tables are related to each other by this Id field -- the Id (primary key) in one table being related to a foreign key field in another table -- the whole structure may be difficult, or even impossible, to sort out.
That said, there's no harm in seeing if you can create the necessary index, if it has been lost, so long as you are only working on a copy of the database. If the index can't be created, Access will tell you so.
If you can't create the index, then your best bet is to send your data to a company that specializes in Access database repair and recovery. I can recommend these, if they are still in business:
Wayne Phillips
Everything Access http://www.everythingaccess.com/accessdatabaserepair.htm
Peter Miller
PK Solutions http://www.pksolutions.com/t4.htm
It's been quite a while since I last checked them out, so I can't vouch for their current status. Both are paid services, but will not charge you if they can't repair the database.