How to Fix Access Error “Record cannot be Read (MSysAccessObjects)” in MS Access?
You can encounter the error “Record cannot be read; no read permission on MSysAccessObjects” in MS Access due to inaccessible records, lack of file permissions, and various other reasons. You can experience this error in the following scenarios:
- When executing queries to get a list of tables in the Access database.
- When trying to open particular forms, reports, or other objects in the Access database.
- When trying to access tables from the Access database.
Below, we will be discussing the possible reasons behind this MS Access error and how to fix it.
What causes Microsoft Access Error – Record cannot be read?
You can encounter this error due to one or more of the following reasons:
- The record in database is corrupted.
- The database is corrupted.
- Objects within the database are damaged or corrupted.
- Lack of file permissions.
- Incorrect macro settings.
Methods to Resolve the “Record cannot be read” Error in MS Access
Follow the below methods to troubleshoot this MS Access error.
Method 1 – Check and Provide the Right Permissions
You may fail to access the objects of the database if you do not have permissions for the folder where the database file is saved. So, make sure you’ve permission to read and modify the database folder. The steps to check the folder permissions are as follows:
- Right-click on the folder where the database is located.
- Select Properties.
- In the Properties window, check if the below options are enabled:
- Read
- Full control
- Write
- If not, then provide the permissions. Click OK and then click Apply.
Method 2 – Select Show System Objects
The error “Record cannot be read; no read permission on MSysAccessObjects” may also occur due to hidden system objects in MS Access. In such a case, you can unhide the system objects. Here are the steps:
- Open an Access database file, go to File, and then click Options.
- In Access Options window, click Current Database and then click Navigation Options under the Navigation section.
- In the Navigation Options window, under Display Options, select the Show System Objects option and click OK.
- Now, you will able to view and access the hidden objects. This helps troubleshoot the issue within the system objects.
Method 3 – Check the VBA Code
The “Record cannot be read; no read permission on MSysAccessObjects” error in MS Access may occur due to issues with VBA code. You can check the queries, objects, parameters, arguments, and syntaxes within the VBA code. Check the object names and make sure there are no typo errors. To check and verify the VBA code, follow the steps below:
- Open the affected database, click Database Tools, and click Visual Basic.
- In the Visual Basic Editor, click Project Explorer.
- Under the desired database name, expand the tree.
- Double-click on the desired module to open the code window.
- Review and make the required modifications to the VBA code.
Method 4 – Check Macro Security Settings
MS Access may prevent you from accessing some functionalities in macro-enabled database file, if macros are disabled. It can restrict the macro execution that relies on the system table, like MSysAccessObjects, leading to the “Record cannot be read” error. You can check and enable the macro settings to resolve the error. Here are the steps:
- Open the Access database, click File and then click Options.
- In Access Options, select Trust Center and then select Trust Center Settings.
- Select Macro Settings and then click “Enable all macros”. Click OK.
Method 5 – Import the Database into New Database
You can import the objects from the affected database file into a new one. This would help in resolving the error if there is an issue with the database file. Here are the steps to do so:
- In MS Access, click on the External Data tab and then click the Import Access Database option.
- The “Get External Data – Access Database” window is displayed. Click on Browse to choose the database file (in which you are getting the error).
- In the same dialog box, click the “Import tables, forms, reports, macros, and modules into the current database” option.
- In the Import Objects window, click on the desired objects (Queries, Table, Reports, Forms, etc.) to import them into the new database.
- Click OK.
Method 6 – Repair the Access Database
Corruption in the Access database is also one of the reasons behind the “Record cannot be read; no read permission on MSysAccessObjects” error. You can repair the database using the Compact and Repair tool in MS Access to repair the database file. Here’s how to use this tool:
- Open the database file.
- Click Info and then click the Compact and Repair Database option.
Once the repair process is complete, the MS Access application creates a copy of the compacted and repaired database file at the same location where it is actually stored.
If the Compact and Repair tool fails to repair the affected database, you can use a professional Access database repair software, like Stellar Repair for Access. It can repair the corrupt Access database (MDB/ACCDB) files with complete integrity. It can even repair the password-protected database files. The software can restore all the objects from the corrupted Access database to new database file. You can download the software’s demo version to check its functionality and effectiveness.
Conclusion
The error “Record cannot be read; no read permission on MSysAccessObjects” can prevent you from modifying the project modules, executing queries, and accessing tables in the Access database. However, you can follow the methods shared above to resolve the error. If corruption in the database is the cause behind the error, then you can try a professional Access database repair software, like Stellar Repair for Access. It can repair all objects, including tables, macros, etc., in the corrupt database.