Discussion:
Schreibkonflikt bei verknüpften Tabellen
(zu alt für eine Antwort)
Agnes Kaszuba
2004-02-18 08:12:26 UTC
Permalink
Hallo, habe ein Problem, das habe ich auch in einem FAQ
gefunden, doch die Lösung verstehe ich nicht, und brauche
Hilfe dabei. Bitte, es ist wirklich wichtig!!!

Schreibkonflikt bei verknüpften Tabellen
Problem:
Die SQL Server-Tabellen sind zu Access verknüpft. Bei
Datenänderungen erscheint die
Fehlermeldung "Schreibkonflikt: Dieser Datensatz wurde
seit Beginn der Bearbeitung von einem anderen Benutzer
geändert ... ". Der Button Eigene Änderungen verwerfen in
der Fehlermeldung ist inaktiv. Der Benutzer arbeitet
alleine an der Datenbank.

Lösung:
Der Schreibkonflikt wird durch Datentypen, deren Werte in
Access und SQL Server nicht identisch sind, ausgelöst.
Nach Änderung der Daten werden die Inhalte der Felder
einzeln verglichen. Access behandelt Gleitkommazahlen mit
einer anderen Genauigkeit als der SQL Server. Die dadurch
entstehende Differenz wird als zwischenzeitige Änderung
des Datensatzes interpretiert und löst die Fehlermeldung
aus.
Der Konflikt kann behoben werden, indem die Tabelle um ein
Feld vom Datentyp Timestamp ergänzt wird. Nun wird bei
einem Update nur noch der Primarykey und das Feld vom Typ
Timestamp des Datensatzes verglichen.
In einem Timestamp-Feld wird kein Datum gespeichert. Als
Inhalt wird ein eindeutiger Wert gespeichert, der den
aktuellen Stand dieses Datensatzes darstellt
Ulf Knochenhauer
2004-02-18 09:36:06 UTC
Permalink
Hallo Agnes,
stelle sicher das alle Tabellen in Deinem SQL-Server einen Primärschlüssel
und ein Timestamp-Feld haben.
HTH
Ulf
Agnes Kaszuba
2004-02-18 09:52:31 UTC
Permalink
Hallo Ulf,

meine Tabellen haben alle einen Schlüssel aber kein
Timestamp-Feld. Soll ich in den Tabellen die auf dem
Server sind so ein Feld anlegen? In alle? Und was trage
ich da ein? Und es ist egal wenn die Felder nur in den
Tabellen die auf dem SQL Server liegen drin sind ja und
nicht in Access? Weil Access hat diesen Datentyp nicht.

Bitte hilf mir.

Aber ich habe noch was erkannt: Hier werden ja Werte
eingetragen über Formulare in die Tabellen. So, die
Fehlermeldung kommt nur bei den Datensätzen, die
eingetragen wurden seit dem der SQL Server im Betrieb ist.
Vorher war es eine reine Access Anwendung. So und wenn man
jetzt in einem Datensatz was ändern möchte geht das nur
dei den Datensätzen die vorher eingetragen wurden, und
nicht bei denen die jetzt eingetragen wurden seit dem der
SQL Server da ist. Ich habe aber auf den Server in die
Tabellen geschaut, die Werte sind drin, die hat er auf
jeden Fall angenommen, nur bearbeiten gehr nicht mehr,
dann kommt die Fehlermeldung.

Agnes
-----Originalnachricht-----
Hallo Agnes,
stelle sicher das alle Tabellen in Deinem SQL-Server
einen Primärschlüssel
und ein Timestamp-Feld haben.
HTH
Ulf
.
Ulf Knochenhauer
2004-02-18 10:07:53 UTC
Permalink
Hallo Agnes,

meine Tabellen haben alle einen Schlüssel aber kein
Timestamp-Feld. Soll ich in den Tabellen die auf dem
Server sind so ein Feld anlegen? In alle? Und was trage
ich da ein? Und es ist egal wenn die Felder nur in den
Tabellen die auf dem SQL Server liegen drin sind ja und
nicht in Access? Weil Access hat diesen Datentyp nicht.

ja, jede Tabelle im SQL-Server soll ein Timestamp-Feld bekommen!
Eintragen mußt Du da nichts. Der SQL-Server verwaltet diese Felder selbst.
Im Access brauchst Du Dich nicht darum kümmern.
Noch ein Hinweis:
Wenn Du die Tabellenstruktur auf dem SQL-Server geändert hast, mußt Du die
Tabellenverknüpfung im Access neu machen.
Bei mir war das jedenfalls so. Ich kann nur leider so allgemein antworten,
weil ich zur Zeit keinen SQL-Server zur Verfügung habe.
Grüße
Ulf
Agnes Kaszuba
2004-02-18 10:23:18 UTC
Permalink
Hallo Ulf,

ok ich werde es jetzt noch mal machen, muss ich denn aber
wenn ich die timestamp-felder einfüge in die Tabellen die
auf dem SQL Server liegen, die noch mal mit den von access
verknüpfen? auch dann wenn ich nichts an denen in access
ändere? kannst du mir bitte die frage beantworten? dann
würde ich es ausprobieren

gruß agnes
-----Originalnachricht-----
Hallo Agnes,
meine Tabellen haben alle einen Schlüssel aber kein
Timestamp-Feld. Soll ich in den Tabellen die auf dem
Server sind so ein Feld anlegen? In alle? Und was trage
ich da ein? Und es ist egal wenn die Felder nur in den
Tabellen die auf dem SQL Server liegen drin sind ja und
nicht in Access? Weil Access hat diesen Datentyp nicht.
ja, jede Tabelle im SQL-Server soll ein Timestamp-Feld
bekommen!
Eintragen mußt Du da nichts. Der SQL-Server verwaltet
diese Felder selbst.
Im Access brauchst Du Dich nicht darum kümmern.
Wenn Du die Tabellenstruktur auf dem SQL-Server geändert
hast, mußt Du die
Tabellenverknüpfung im Access neu machen.
Bei mir war das jedenfalls so. Ich kann nur leider so
allgemein antworten,
weil ich zur Zeit keinen SQL-Server zur Verfügung habe.
Grüße
Ulf
.
Ulf Knochenhauer
2004-02-18 12:13:07 UTC
Permalink
Hallo Agnes,
"Agnes Kaszuba" <***@discussions.microsoft.com> schrieb im Newsbeitrag news:1214a01c3f609$3a39a220$***@phx.gbl...
Hallo Ulf,

ok ich werde es jetzt noch mal machen, muss ich denn aber
wenn ich die timestamp-felder einfüge in die Tabellen die
auf dem SQL Server liegen, die noch mal mit den von access
verknüpfen? auch dann wenn ich nichts an denen in access
ändere?
Post by Ulf Knochenhauer
Wenn Du die Tabellenstruktur auf dem SQL-Server geändert
hast, mußt Du die
Post by Ulf Knochenhauer
Tabellenverknüpfung im Access neu machen.
also ja!

Grüße
Ulf
Agnes Kaszuba
2004-02-18 13:15:41 UTC
Permalink
Hallo Ulf,

ich habe es gemacht und es funktioniert.

Ich danke Dir :-)

Agnes
-----Originalnachricht-----
Hallo Agnes,
Hallo Ulf,
ok ich werde es jetzt noch mal machen, muss ich denn aber
wenn ich die timestamp-felder einfüge in die Tabellen die
auf dem SQL Server liegen, die noch mal mit den von access
verknüpfen? auch dann wenn ich nichts an denen in access
ändere?
Post by Ulf Knochenhauer
Wenn Du die Tabellenstruktur auf dem SQL-Server geändert
hast, mußt Du die
Post by Ulf Knochenhauer
Tabellenverknüpfung im Access neu machen.
also ja!
Grüße
Ulf
.
Loading...