ACC97: Write Conflict Error When You Try to Update Records in a Linked SQL Server Table (278696)



The information in this article applies to:

  • Microsoft Access 97

This article was previously published under Q278696
Advanced: Requires expert coding, interoperability, and multiuser skills.

For a Microsoft Access 2000 version of this article, see 280730.

SYMPTOMS

You receive the following write conflict error when you try to update records in a linked SQL Server table:
This record has been changed by another user since you started editing it. If you save the record, you will overwrite the changes the other user made.

Copying the changes to the clipboard will let you look at the values the other user entered, and then paste your changes back in if you decide to make changes.
You are then given the following options: Save Record, Copy to Clipboard, or Drop Changes.

CAUSE

Access is creating Null bit fields, which causes a type mismatch.

RESOLUTION

To resolve this problem, do one of the following:
  • Using SQL Server, open the table in Design view, and assign a default value of 0 (that is, zero) on all bit fields.

    NOTE: With this option, you must update records entered before this change was made. See the next item for more information.

  • Using SQL Server, run an Update Transact-SQL statement against the table, and set all bit fields that have a value of Null to a new value of 0 or 1.
  • Using SQL Server, change the bit fields to some other data type, such as int or tinyint.
  • Using SQL Server, add a timestamp field to the table.

MORE INFORMATION

Steps to Reproduce Behavior

The following steps assume that you have an understanding of how to create tables in SQL Server, and that you are familiar with certain SQL Server tools such as Enterprise Manager.

Also assumed is that you are aware of how to create File, User, and System Data Source Names (DSN), and how to use a DSN to link a table to a Microsoft Access 97 database.
  1. In Microsoft SQL Server 7.0 or later, add a new table to the Pubs sample database, with the following table structure:

    Column NameData TypeLengthAllow Nulls
    fldIDint4<unchecked>
    fldBitbit1<checked>
    fldDescripvarchar50<checked>
  2. Make the following Column property assignments to the fldID:
       Identity: Yes
       Identity Seed: 1
       Identity Increment: 1
    					
  3. Set the fldID field as the primary key, and then close and save the table as Table1.
  4. Insert the following records into the Table1 table:

    fldIDfldBitfldDescrip
    11Record #1
    2<NULL>Record #2
    30Record #3
    41Record #4
  5. Close the table, and then create a User DSN that points to your SQL Server.
  6. Open any Access 97 database, and then link Table1 from the Pubs database into your database.
  7. Change the description of Record #1 to Record #0. Note that you can save your change.
  8. Try to change the description of Record #2 to Record #1. Note that you receive an error when you try to save your change.

Modification Type:MajorLast Reviewed:10/20/2003
Keywords:kbprb KB278696