How to Fix Microsoft Access Runtime Error 3146 (ODBC Call Failed)
Question details
The user needs to resolve ODBC Runtime Error 3146 in Microsoft Access, which is triggered after modifying the schema of a linked SQL Server table.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Attempting to access a linked SQL Server table in Microsoft Access after a field name has been altered on the server side.
- Observed behavior
- Access throws Runtime Error 3146 (ODBC Call Failed) because it retains outdated linked-table definitions and loses access to the renamed column.
Ensure you have the exact name of the modified SQL Server table and the necessary database permissions to refresh linked tables or execute VBA scripts in your Access database.
Refresh the Linked Table via Linked Table Manager
Update the table definitions in Access to sync with the latest SQL Server schema.
Because Microsoft Access caches the structure of linked tables, backend changes like renaming a field will not automatically reflect. Refreshing the link forces Access to fetch the new definitions.
Navigate to the 'External Data' tab on the Microsoft Access ribbon and click on 'Linked Table Manager'.
In the Linked Table Manager dialog, check the box next to the SQL Server table where the field was recently renamed or modified.
Click the 'OK' or 'Refresh' button to prompt Access to retrieve the updated field definitions from the SQL Server.

Use a VBA Script to Extract Detailed ODBC Errors
Extract the specific underlying ODBC error message when the general Error 3146 does not provide enough troubleshooting detail.
Try WPS Office for a Streamlined Document Management Experience
While Microsoft Access handles complex database needs, WPS Office provides a free, lightweight, and highly compatible alternative for your everyday document, spreadsheet, and presentation tasks. Enjoy a familiar interface without the heavy subscription costs.
- 1. Download WPS Office: Visit the official WPS website and download the free installer for your operating system.
- 2. Install the software: Run the downloaded setup file and follow the on-screen instructions to complete the lightweight installation.
- 3. Open your files: Launch WPS Office and instantly open your existing Microsoft Office documents without formatting loss.

Frequently Asked Questions
What does Microsoft Access Runtime Error 3146 mean?
Error 3146 is a generic top-level error indicating that an Open Database Connectivity (ODBC) call failed. It usually means Access is unable to communicate properly with a linked external database like SQL Server due to an unexpected schema mismatch, connection timeout, or permission issue.
Why do linked tables cause ODBC connection failures in Access?
Access stores a local snapshot of the linked table's structure. If the schema changes on the SQL Server (such as a renamed or deleted field) and the link isn't refreshed, Access attempts to query using outdated definitions, resulting in a connection failure.
Can I view the specific ODBC error behind Runtime Error 3146?
Yes. Because 3146 is a generic error, you can use a VBA script to loop through the DBEngine.Errors collection and print the exact underlying error number and detailed description to the Immediate Window.
Do I need to recreate my linked tables to fix this error?
Usually, no. Using the Linked Table Manager to refresh the connection is sufficient to update the table definitions. Recreating or deleting and re-importing the link is only necessary if the refresh fails completely or the database server credentials have changed.




