Fix Microsoft Access Write Conflict After MySQL Database Migration
Question details
The user is experiencing continuous write conflict errors when attempting to open and interact with forms in a Microsoft Access frontend.
- Product
- Microsoft Access and MySQL
- Device & OS
- not provided
- Scenario
- Operating a Microsoft Access frontend connected via ODBC to a newly migrated MySQL backend database (previously SQL Server).
- Observed behavior
- Access displays a write conflict error message indicating that another user has modified the record when opening forms, even though there is only one active user connected to the database.
Ensure that all users are disconnected from the Access frontend network share and temporarily disable any scheduled background tasks or automated scripts that might be updating the MySQL tables while you test the ODBC connection.
Verify Primary Keys in MySQL and Re-link Tables in Access
Microsoft Access requires well-defined primary keys to accurately track which records have been modified. Without them, Access may mistakenly assume that a background process has altered the data.
When migrating from SQL Server to MySQL, table metadata such as primary keys may not transfer correctly depending on the migration tool used. If Access cannot identify a unique identifier for a table over ODBC, it defaults to a read-only state or triggers false write conflicts upon form edits.
Open your preferred MySQL management tool (such as MySQL Workbench) and verify that every table involved in your Access forms has a primary key explicitly defined.
Open your Microsoft Access frontend database. In the Navigation Pane, right-click the existing linked tables pointing to the MySQL backend and select 'Delete' to remove them.
Navigate to the 'External Data' tab on the ribbon, click 'New Data Source', select 'From Other Sources', and then choose 'ODBC Database'.
Follow the wizard to link your MySQL tables. If Access prompts you to 'Select Unique Record Identifier' for any table, ensure you manually select the field that corresponds to the primary key in MySQL.

Update MySQL ODBC Connector and Adjust Data Types
Outdated ODBC drivers or incompatible timestamp data types can cause Access to misinterpret MySQL record locking behaviors.
Review VBA Code and SQL Statements for Syntax Conflicts
SQL Server and MySQL handle query syntax and data macros differently. Leftover SQL Server-specific VBA code can trigger locking issues in a MySQL environment.
Looking for a Lightweight Office Suite? Try WPS Office
While managing complex database migrations requires specialized tools, your everyday document, spreadsheet, and presentation tasks deserve a seamless, fast, and cost-effective solution. WPS Office is a free, highly compatible alternative to Microsoft Office that easily handles your daily productivity workflow.
- 1. Download the Installer: Visit the official WPS Office website and download the free installation package for your operating system.
- 2. Install the Suite: Run the setup file and follow the on-screen instructions to deploy WPS Office on your machine.
- 3. Open Your Files: Launch WPS Office and instantly open your existing Microsoft Office files without worrying about formatting loss.

Frequently Asked Questions
Why does Access say there is a write conflict when I am the only user?
This is typically a 'false' write conflict. It happens when Access cannot uniquely identify the record you are trying to edit, often because the linked MySQL table lacks a primary key. It can also happen if MySQL updates a background field (like a TIMESTAMP) automatically, making Access think another user modified the row.
Which ODBC driver should I use for Access and MySQL?
You should use the official MySQL Connector/ODBC. It is critical that you install the architecture version (32-bit or 64-bit) that matches your Microsoft Access installation, regardless of whether your Windows system is 64-bit.
How do I ensure Access recognizes my MySQL primary keys during linking?
When linking a MySQL table via ODBC, Access usually prompts you with a 'Select Unique Record Identifier' dialog if it cannot automatically detect the primary key. You must manually select the column(s) that act as the primary key in your MySQL schema before clicking OK.




