[quoted text, click to view] Mark A. Sam wrote:
> Hello,
>
> I linked an SQL Database table from a remote server over the
> internet, via ODBC.
>
> I can't make changes from Access. I get a write conflict message
> with the only options being to Copy to Clipboard or Drop Changes.
> The save option is disabled.
>
> I am able to create a new record from Access, but if I leave the
> record and return to it, I get the came issue.
>
> I tried a DAO method from an Access form button and was not able to
> edit. I get runtime error 3197:The Microsoft database engine stopped
> the process becuase you and another user are attempting to change the
> same data at the same time.
>
> I am however able to make changes via the Enterprise Manager this is
> also how I created the table. There is no other user on the system
> and the problem occurs with the Enterprise Manager open or closed.
> So there are no real user conflicts.
Usually resolved by adding a Timestamp column to the SQL Server table.
The Timestamp is a special data type that is updated to a database-unique
value whenever a row is edited in the table. When this column exists Access
will compare the Timestamp value in the table to the Timestamp value in its
buffer to determine if the record has been changed by another process since
local editing began. When a Timestamp does not exist Access will compare
the value of every field in the table to every field in the buffer to see if
any of them are changed. With certain data types (decimal for one) Access
can have a problem with evaluating the value accurately enough and it might
"think" that a value has been changed when it really hasn't (thus the
error).
The above being the case you won't see this in every table linked from a SQL
Server, but it's not a bad practice to include a Timestamp column in all
tables that will be linked to from Access.
--
I don't check the Email account attached
to this message. Send instead to...
RBrandt at Hunter dot com