· Mehdi Aroui · produktivitaet  · 2 min read

Access-Schreibkonflikt mit MariaDB, MySQL oder MSSQL beheben

Die Fehlermeldung "Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert" tritt in Access-Frontends mit externem Backend häufiger auf als erwartet. Die Ursache liegt im Datentyp, die Lösung in einem TIMESTAMP-Feld.

Die Fehlermeldung "Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert" tritt in Access-Frontends mit externem Backend häufiger auf als erwartet. Die Ursache liegt im Datentyp, die Lösung in einem TIMESTAMP-Feld.

Die Ausgangslage

Eine Access-Datenbank wurde auf MariaDB, MySQL oder Microsoft SQL Server migriert. Aus Hamburger Praxen und Büros sehen wir diesen Migrationspfad häufig. Access wird weiterhin als Frontend genutzt, das Backend läuft auf dem externen Datenbankserver. (Stand 2026: Die beschriebene TIMESTAMP-Lösung gilt für MariaDB 10.x/11.x und MySQL 8.x unverändert.) Bei Änderungen an Datensätzen erscheint die Fehlermeldung:

“Schreibkonflikt. Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert.”

Das Kuriose: Der Fehler tritt auch dann auf, wenn kein zweiter Benutzer aktiv ist.

Ursache

Access nutzt die JET-Datenbank-Engine für den externen Datenbankzugriff. JET vergleicht beim Speichern feldweise den aktuellen Zustand eines Datensatzes mit dem Zustand zum Zeitpunkt des Öffnens. Bei der Konvertierung von Access zu MySQL oder MariaDB werden Datentypen manchmal nicht exakt übertragen. Felder ohne eindeutigen Änderungszeitstempel führen dazu, dass JET glaubt, ein anderer Prozess habe den Datensatz verändert.

Lösung: TIMESTAMP-Feld hinzufügen

Ein Feld mit dem Datentyp TIMESTAMP gibt JET einen zuverlässigen Anker für den Vergleich. Der Wert wird automatisch bei jeder Änderung aktualisiert.

Schritt 1: Backup anlegen

Vor jeder Schemaänderung an der produktiven Datenbank ein Backup erstellen.

Schritt 2: TIMESTAMP-Feld per ALTER TABLE hinzufügen

ALTER TABLE `tabellenname`
ADD COLUMN `TimeStamp` TIMESTAMP NULL
  DEFAULT CURRENT_TIMESTAMP()
  ON UPDATE CURRENT_TIMESTAMP()
  AFTER `letztes_feld`;

letztes_feld durch den tatsächlichen Spaltennamen ersetzen, nach dem das neue Feld eingefügt werden soll.

Schritt 3: Verknüpfung in Access neu laden

  1. Access öffnen
  2. Externe Daten, Neue Datenquelle
  3. Aus anderen Quellen, ODBC-Datenbank
  4. “Erstellen Sie eine Verknüpfung zur Datenquelle” wählen
  5. Bestehende ODBC-Datenquelle auswählen
  6. Tabelle auswählen und verknüpfen
  7. Alte Verknüpfung in Access entfernen, neue umbenennen

Nach der Neuverknüpfung erkennt Access das TIMESTAMP-Feld automatisch und nutzt es für die Konflikterkennung. Der Schreibkonflikt-Fehler sollte nicht mehr auftreten.

Wichtig bei MSSQL

Bei Microsoft SQL Server erfüllt ein rowversion-Feld (früher timestamp) dieselbe Funktion. Access erkennt diesen Datentyp ebenfalls und verwendet ihn für den Datensatzvergleich.

ALTER TABLE tabellenname
ADD rowversion_col rowversion;

Netzleiter unterstützt bei der Migration von Access-Datenbanken auf externe Backends und bei der Fehleranalyse in bestehenden Hybridlösungen. Fragen an die Hotline: 040 25 499 500.

    Share:
    Back to Blog

    Related Posts

    View All Posts »
    PDF, PDF/A, PDF/X: Welches Format wofür?

    PDF, PDF/A, PDF/X: Welches Format wofür?

    PDF ist nicht gleich PDF. Für Langzeitarchivierung gilt PDF/A, für Druckdateien PDF/X, für technische Dokumentation PDF/E. Dieser Leitfaden erklärt die Unterschiede.