A family of Microsoft relational database management systems designed for ease of use.
Ok, several things to check + test that may well help this issue.
If you have a bit column in sql server, make sure you set the default to 0, and not null. This is a long time known error to cause the write conflict. (Your example does not suggest this issue but when we grasping at straws to troubleshoot, then we want to make sure this issue is not part of the problem).
To be fair, the newer native drivers actually now return 0 (false) for those nulls – so we don’t see this problem much anymore.
So, I do not think the above is your issue – but simply you should be aware that all bit columns REALLY need a default value set on the sql server side.
Now, for near forever, the recommend approach when using Access with sql server is to include for ALL tables what is called a row version column (a timestamp column).
So your simple fix here is to add a rowversion column to any table you plan to use/link to from Access.
This rowversion column is NOT to be confused with a date/time column.
If you don’t do the above, then Access is forced to do a column by column compare to determine a record change. (and it sends a VERY ugly query to the server to check for changes). If your table say has 120 columns, then Access will query all 120 columns for this check. And what occurs is some “rounding” errors when you use the timedate2(7) new column time - so access fails and thinks the record has changed.
If you include the timestamp column in all your tables, then access ONLY compares and looks at the ONE timestamp column to determine if the sql record has changed.
In fact, the migration wizard(s) be it access or the SSMA tools ALWAYS give you an option to add a timestamp (rowverison) column during a migration, and this advice has been around for at least 20 years – even before the new timedate2(7) columns that appeared for SQL server.
So, adding a timestamp column, and re-linking your tables will fix this issue.
So, you can reduce some (in fact a lot) of network chatter, and save access some pain, but you also fix your problem if you do this.
Add a rowversion column, and don't forget to re-link your tables, this should fix this issue for you.
Regards,
Albert D. Kallal (Access MVP 2003-2017)
Edmonton, Alberta Canada