Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Schreibkonfliktmeldung bei manchen Datensätzen bei best. PCs
zurück: Kreuztabelle mit mysql erzeugen weiter: Anfügeabfrage geht nicht, Manuell schon Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
amicron
VBA-Anfänger


Verfasst am:
30. Jul 2013, 18:33
Rufname:

Schreibkonfliktmeldung bei manchen Datensätzen bei best. PCs - Schreibkonfliktmeldung bei manchen Datensätzen bei best. PCs

Nach oben
       Version: Office 2003

Guten Abend,

wir haben schon länger eine Access 2003 (SP3) /MySQL-(5.x)-Kombi am laufen, die soweit auch funktioniert. Seit einiger Zeit gibt es allerdings Rückmeldungen von Kollegen, dass es ab und zu bei einigen wenigen Datensätzen nach dem Bearbeiten ein Schreibkonfliktmeldung ("Schreibkonflikt - Dieser Datensatz wurde seit Beginn der Bearbeitung von einem andern Benutzer geändert" wobei Datensatz speichern ausgegraut ist) gibt und die Änderung sich nicht abspeichern lässt.

Ich konnte das an 2 Rechnern (WinXP in Novell-Netware-Netz) nachvollziehen, kann mir aber keinen Reim darauf machen:
  • Es gibt in allen eingebundenen Tabellen (per VBA-Code mit der Option "43" für den MySQL-ODBC-Connector) ein TIMESTAMP-Feld, das auch befüllt ist.

  • In den betreffenden Datensätzen konnte ich keine "Merkwürdigkeiten" wie ungewöhnliche Daten /Zeichen entdecken.

  • Der Fehler tritt auch unter mit einer anderen Anmeldung (Novell/Windows) am gleichen PC auf.

  • Aber: Auf mehreren anderen PCs lässen sich die fraglichen Datensätze erfolgreich aktualisieren!

  • Es gibt keine verwaiste .ldb-Dateien
Zur Sicherheit habe ich das Officepaket komplett inkl. Registry-Reinigung de- und neu installiert. Ohne Erfolg. Hat jemand eine Idee/ eine Tipp in welcher Richtung wir noch nach der Ursache suche können?

Besten Dank!
Gruß,
amicron
amicron
VBA-Anfänger


Verfasst am:
07. Aug 2013, 16:33
Rufname:


AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best. - AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best.

Nach oben
       Version: Office 2003

Hi,

Nach ewigem Gesuche hab ich schließlich die Ursache gefunden:
Access kam mit dem Datentyp "Float" für ein Feld auf bestimmten Rechnern nicht klar und hat offenbar die vielen Nachkommastellen abweichend von MySQL interpretiert. Nachdem ich bis auf eine alle Nachkommastellen in den fraglichen Datensätzen gekürzt hatte funktionierte es auf den "problematischen" Rechnern.
Um den Fehler für die Zukunft zu vermeiden habe ich in MySQL das Feld auf DECIMAL(3,1) umgestellt, da eine Nachkommastelle ausreichend ist.
Gehe mal davon aus, dass es sich damit erledigt hat.
Warum allerdings nur ein paar PCs so reagiert haben ist mir nicht so ganz klar. Vielleicht hängt die Interpretation des Float-Datentyps in Access auch von der Hardware ab (CPU-Takt etc.)?

Gruß,
amicron
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
16. Aug 2013, 11:48
Rufname:

AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best. - AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best.

Nach oben
       Version: Office 2003

Hallo,

der Datentyp Float entspricht dem Double bei VBA/Access. Das ist ein Datentyp "guter Genauigkeit", aber auch nicht mehr. Jeder Wert wird in 5 Bytes gespeichert und das Ergebnis, das Du siehst, wird daraus berechnet. Entsprechend ist es immer nur ein Annäherungswert und kann durchaus theoretisch von verschiedenen FPUs unterschiedlich berechnet werden.

Decimal ist ein exakter Datentyp, da hast Du die Probleme nicht, jedoch kann das Schreibkonfliktproblem trotzdem immer wieder auftauchen, da das daran liegt, daß Access alle Datentypen immer über sein JET-Engine schleift und umwandelt und daß eine Änderung eines Datensatzes immer durch Vergleich aller Felder festgestellt wird. Wenn es dann zu Rechenungenauigkeiten kommt, ist das für Access das gleiche.

Abhilfe schafft (bei SQL Server) das Hinzufügen einer Timestamp-Spalte in jede Tabelle, die mit Access genutzt wird. In dem Fall wird kein Feld-für-Feld-Vergleich mehr durchgeführt, sondern nur noch die Timestamp-Spalte verglichen. Bin mir jetzt nicht sicher, ob MySQL etwas Ähnliches hat, aber das sollte dort genauso funktionieren.

Gruß

Christian
amicron
VBA-Anfänger


Verfasst am:
16. Aug 2013, 14:34
Rufname:

AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best. - AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best.

Nach oben
       Version: Office 2003

Hallo,

danke für deine Ausführungen bitsqueezer. Allerdings habe ich in allen eingebundenen MySQL-Tabellen ein Timestamp-Feld. Warum vergleicht Access dann trotzdem?

Beste Grüße,
amicron
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
16. Aug 2013, 15:05
Rufname:

AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best. - AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best.

Nach oben
       Version: Office 2003

Hallo,

habe vorhin nachgesehen, es gibt zwar eine Timestamp-Spalte bei MySQL, die ist aber tatsächlich nur Datum und Uhrzeit, wann der Datensatz zuletzt geändert wurde.

Das ist aber nicht das gleiche wie Timestamp bei SQL Server: Dort hat diese Spalte die Funktion "RowVersion" (wie es auch in neueren Versionen heißt). D.h., es ist quasi eine Autonumber pro Datensatz, die einfach bei jedem Schreiben hochgezählt wird.

Die Timestamp-Spalte bei MySQL müßte also schon eine Genauigkeit von Nanosekunden haben, um sicherzustellen, daß es immer 100% eine neue Zeilenversion ist, das scheint aber wohl nicht der Fall zu sein bzw. ist Access nicht sicher genug, um diese Spalte allein als Änderungskriterium zu verwenden. By SQL Server ist das kein Problem, da es aus dem gleichen Hause kommt und damit weiß Access, worauf es sich verlassen kann - bei MySQL läuft es nur über einen ODBC-Treiber und dieser müßte Access einen passenden Datentyp zur Verfügung stellen, auf den sich Access verlassen kann.

Daher bleibt Dir im Zweifelsfall nur, die Datentypen einer Zeile so genau zu definieren, daß es auch bei Umwandlungen nicht zu Problemen kommt (wie bei dem Decimal-Beispiel). Aber leider gibt es da keine Garantie, da hilft nur Probieren.

Gruß

Christian
amicron
VBA-Anfänger


Verfasst am:
16. Aug 2013, 15:12
Rufname:


AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best. - AW: Schreibkonfliktmeldung bei manchen Datensätzen bei best.

Nach oben
       Version: Office 2003

Okay, vielen Dank und ein schönes Wochenende!

amicron
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Microsoft Access und MS SQL Server: SQL Alle Datumswerte anzeigen, auch bei leeren Datensätzen 2 Shauir 156 03. Feb 2014, 10:05
Shauir SQL Alle Datumswerte anzeigen, auch bei leeren Datensätzen
Keine neuen Beiträge Microsoft Access und MS SQL Server: Access&SQL Server - automatisches Speichern von Datensät 0 klausir 839 12. Okt 2011, 14:05
klausir Access&SQL Server - automatisches Speichern von Datensät
Keine neuen Beiträge Microsoft Access und MS SQL Server: Zugriff auf eine Datenbank von mehreren PCs gleichzeitig 1 daniel1311 3245 01. März 2010, 20:54
Bitsqueezer Zugriff auf eine Datenbank von mehreren PCs gleichzeitig
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS