Summary: This tutorial summarizes the best selective fixes for one of the most common Access error i.e. Record(s) cannot be read; no read permission on ‘xxxx’. So, go with the post and get the knowledge on best fixes to resolve this particular error message.
You must be familiar with the fact that tables in MS Access database (MDB file) have a planned segregation of data in the form of rows and columns which serve as most effective storage solutions for your data. Tables contain separate cells that help in storing the data separately. But when database corruption issues arises, tables are not prone to this.
In Access database, there are many system tables that collectively feature crucial information about the database. Generally these system tables are kept hidden, when creating an MDB/accdb file: MSysAccessObjects, MSysObjects, MSysQueries, MSysACEs, MsysRelationships. Therefore the possibility of getting this error gets raised when any corruption issue occurred in Access database. So, the following error message gets displayed on your screen when you try to open such corrupted MDB/ACCDB file.
Record(s) cannot be read; no read permission on ‘xxxx’ (Error 3112)
Where ‘xxxx’ is an Access object name, it can be either a user object or a system object.
You Might Also Be Interested In:
i wrote script for downloading mdb files and reading them due OLEDB provider. All works fine, but if i try to read from table, it throws an exception:
Ms Access: Record(s) cannot be read; no read permission on tblMytable
var cmd = new OleDbCommand(“SELECT * FROM tblMytable”, conn);
var reader = cmd.ExecuteReader();
I changed permissions directly in Ms Access for user “administrator” and it works. But the problem is, that this script musst run twice a day and it downloads about 20 files. So its impossible manually changing permissions.
Is it possible to change read rights for a table programatically?
Thanks a lot for any ideas!
The following error:
Record(s) cannot be read; no read permission on ‘MSysAccessObjects‘
generally encounters when you tries to open any corrupted MDB/ACCDB file with MS Access. This error is also identified with the Error Code 3112.
Here is the screenshot of the error message:
Reason behind Access Runtime Error 3112:
This particular Access Record(s) cannot be read error occurs because of the following reasons:
- When you don’t have the required or necessary permissions to view the tables or it’s data.
- If the table or data stored within the table is corrupted or damaged.
Common Errors Encounters Due To Access Database Corruption:
Here is the List of some more errors which occurs at the time of Access database corruption. Some of common ones are mentioned here.
- Record(s) cannot be read; no read permission on ‘MSysObjects’.
- The database ‘filename.mdb’ needs to be repaired or isn’t a database file.
- database is in inconsistent state
- Unrecognized database format ‘path/filename.mdb’.
- “The Database In An Unexpected State”
- Microsoft jet database engine stopped the process because you and another user are the database is in an unexpected state.
- Cannot open database ‘filename.mdb’.
How MDB/ACCDB database files get corrupted?
There might be numerous reasons behind the corruption of your Access Database. This leads the user to look for the fixes to repair Microsoft Access database file. Some of the most reasonable cause behind corruption of MDB/ACCDB files are:
- Exist or Abort of application.
- Hardware or software failure.
- Sudden/Unexpected power failure and System Shutdown
- Interruption operation. write in
- Virus or malware attack
- While saving Access database in other program.
Usually this sort of Record(s) cannot be read; no read permission on ‘MSysObjects’ error occurs when you don’t have the permission to read the specified table or query to view its data.
So, in that case you need to consult to your system administrator or the creator of the object to alter your permission assignments.
You Might Also Be Interested In:
But if you are so sure about the eligibility to access the object and yet facing the same error 3112 records cannot read, then the chances are also that object information and property data are partially get corrupted. In such case you must try the following solutions mentioned below.
Fixes To Resolve Record(s) cannot be read; no read permission on ‘xxxx’ error
Below here are the steps that must be followed in order to resolve the Access Record(s) cannot be read error occurred due to corruption issue encountered in Access database file.
Fix #1: Compact and repair utility
Use the Access in-built repair tool i.e. compact and repair utility to repair Microsoft Access database file. To run compact and repair tool follow the steps:
- Close the database if open.
- Go To Tool menu —> Database Utilities, and then select Compact and Repair Database.
- A dialog box will appear Database to Compact From, select database file and click on it.
- A new dialog box will appear Compact Database Into, here enter file name and click on.
Also the message will come up to your screen if in case compact and repair fails to repair the MS Access database file. Which is a sign that your access database is severely gets damaged.
You can also watch the video that how it is to be done.
Fix #2: Import database objects:
Creating a new database and then importing one by one all objects from the old database to new one is quiet helpful most of the time. After importing down all the objects you need to re-create the relationship. Follow down these steps if you can’t use import wizard.
- Go To database, select Objects—> Pages and click on New.
- In dialog box, select Existing web page and click
- Now select for the location of the data access page.
Fix #3: Export table to an ASCII file
If your Access database table is damaged and above technique fails or unable to repair the Access MDB/ACCDB database file, then try out the following fixes.
- Export table to an ASCII file
- Delete table and associated relationships from the database.
- Compact the database and re-create the table with its relationship.
- Remove bad data by examining ASCII file in a word processor.
- Now import this ASCII file to a freshly created table.
- Insert records deleted forcefully.
Fix #4: Recover from Backup
If you have kept the recent, valid and genuine backup, then there is no need to repair the corrupt ACCDB database files (Also Read: Repair and Restore Partial Corrupted .MDB Access File). Since, backup is available, simply restore your database files from the backup.
Fix #5: Access Repair N Recovery Tool
If the above mentioned solutions unable to repair the above issue then it’s better to go with the recommended solution i.e making use of the Access Repair N Recovery Tool. As, this tool works perfect to resolve any kind of MS Access application issue whether it is occurred due to any corruption issue or any severely damaged data loss issue.
Now you must have got the knowledge on how to fix Record(s) cannot be read; no read permission on ‘xxxx’ Access error. By understanding the situation as to what is going on and tested backups, dealing with corruption situation can become difficult. But trying out the fixes for repairing the access database corruption issue is really gone a help you a lot. Even though if you are not well efficient to resolve the issue then also the option is there i.e Access Repair N Recovery Tool.