Table converted to System Table

TimSims

New member
Local time
Today, 22:47
Joined
Mar 17, 2016
Messages
5
I've got an interesting one.

One of my tables has converted from being a 'normal' access table into a system table/object, for no good reason. I've not encountered this before. Table name: 'Lookup_CRSGroup'. I'm using Access 2013.

I went to run a query and recieved an error message that I did not have rights to access that table. On checking, I discovered that my table was 'missing', so I tried to reimport it, to discover that it was there, but was now a hidden system table/object.

I could easily recreate the database, so I did, but it has happened again.

I know I have probably done something stupid, but I cannot figure this one out. Can anyone help?

Thanks in advance,

Tim
 
i re-created your table with same name, nothing happens. just normal table. i close and open the db, same o.
 
i re-created your table with same name, nothing happens. just normal table. i close and open the db, same o.

Thanks arnelgp. I did not think it was because of the name, but I thought I had best include the name (just in case this was the cause).

The error is intermittent and has happened only twice out of 18 days of using the database. On both occasions, the Access crashed and on reopening, the table was no longer visible / converted to a system object.
 
You might have some level of corruption. I suggest trying Compact and Repair, but it's only a guess.
 
Apologies for adding another update:
I've just noticed the trigger for the error. It happens when I save a new version of the database (using Save As).

jdraw - thank you for the suggestion. I Compacted and Repaired right before saving as new version.
 
Virus scanners are unlikely to interfere with Access at that level. The thing you want to find is any code or query that would attempt to update the following field reference in the record specific to your miscreant table:

MSysObjects![flags]

If you were to set the flags field corresponding to the MSysObjects entry for your table to either &H02 or &H8000000, it would look like a system table and would thus become hidden from normal view. It is HIGHLY NOT RECOMMENDED to make something a system table when it is not. Making it hidden - fine. Making it system - not cool.

Oh, it is unlikely to break anything because system tables behave like ordinary tables most of the time. But I'm not sure that a Compact and Repair will touch a system table the same way as it manages the "real" system tables because Access is REBUILDING the system tables, not copying them. The other implications of marking something as "system" when it is not? Damned if I know!
 
Virus scanners are unlikely to interfere with Access at that level. The thing you want to find is any code or query that would attempt to update the following field reference in the record specific to your miscreant table:

MSysObjects![flags]

If you were to set the flags field corresponding to the MSysObjects entry for your table to either &H02 or &H8000000, it would look like a system table and would thus become hidden from normal view. It is HIGHLY NOT RECOMMENDED to make something a system table when it is not. Making it hidden - fine. Making it system - not cool.

Oh, it is unlikely to break anything because system tables behave like ordinary tables most of the time. But I'm not sure that a Compact and Repair will touch a system table the same way as it manages the "real" system tables because Access is REBUILDING the system tables, not copying them. The other implications of marking something as "system" when it is not? Damned if I know!

Thanks for taking the time to respond. I definitely do not want this table to be a system table. I will look into seeing if I can find the flags field.
 

Users who are viewing this thread

Back
Top Bottom