Schreibkonflikt bei verknüpften Tabellen

Frage:
D
ie Datenänderung an einer in Access eingebundenen SQL Server-Tabelle wird mit der Fehlermeldung „Schreibkonflikt: Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert … “ abgebrochen – obwohl nur ein Benutzer mit der Datenbank arbeitet. Die in der Fehlermeldung enthaltene Schaltfläche Eigene Änderungen verwerfen ist zudem noch deaktiviert.

Lösung:
Der Schreibkonflikt wird durch
Datentypen verursacht, die in SQL Server und Access mit unterschiedlichen Genauigkeiten arbeiten.
Bei einer Datenänderung werden die Werte aller Spalten miteinander verglichen, um festzustellen, ob es seit dem Einlesen des Datensatzes eine Datenänderung von anderer Seite gab. Nun unterscheiden sich die Werte durch die unterschiedlichen Genauigkeiten, die Access und SQL Server bei Gleitkommazahlen verwenden. Dieser Unterschied wird als zwischenzeitige Änderung interpretiert und löst die Fehlermeldung aus.
Der Vergleich der einzelnen Spalten kann vermieden werden, indem die SQL Server-Tabelle um eine Spalte vom Datentyp timestamp erweitert wird. Bei einer Datensatzänderung wird dann nur der Wert dieser Spalte verglichen. Eine timestamp-Spalte beinhaltet dabei kein Datum, sondern vielmehr eine GUID, die den aktuellen Stand des Datensatzes abbildet.

/* übernommen aus der Original sqlfaq.de */