Member
Beiträge: 6
Ort: Schweiz | Hallo Miteinander
Wir betreiben schon länger eine Access 2016 Datenbank erfolgreich in unserer Firma. Das Frontend kann je nach Konfiguration Mobil oder im Büro betrieben werden. Im Büro Betrieb verbindet sich die Datenbank via ODBC Treiber mit einem MySQL Server. Die Mobile Version verwendet die gleiche Tabellen als Backend in der ACCDB Version.
Zwischendurch muss die Mobile Version mit der Büro Version synchronisiert werden. Während der Synchronisation werden neu erstellte Daten von der Mobilen Version auf den SQL Server geschrieben. Ganz am Schluss der Synchronisation werden alle Mobilen Daten gelöscht und vom SQL Server werden sämtliche Daten wieder in das Mobile Backend kopiert. Dies geschieht mit einem db.execute InsertInto Befehl. Bis anhin hat das immer Funktioniert, die verwendete Access Versionen waren 2016 oder Runtime 2016. Es wird alles kopiert (ID, Daten, Zeit Stempel)
Nun wollte ich auf einem neuen Laptop (Win10, Office 2016) die Sache erneut installieren und testen. Gleicher Test auch auf einer VM mit Windows 10 und nur dem Access Runtime. Leider scheitert die Synchronisation mit folgendem Fehler:
- Der Datensatz wurde gelöscht, Fehler 3167
Der eigentliche Ablauf:
- Funktion 1: db.Execute ("Delete from tbl_ordner")
- Funktion 2: db.Execute ("Insert INTO tbl_ordner SELECT * FROM tbl_ordner_server")
- Der Datensatz wurde gelöscht, Fehler 3167
Was wurde bisher versucht:
- Test mit verschiedenen Access Runtime Versionen (Inklusive neuster Office 365 Runtime Version)
- Test mit verschiedenen ODBC Treibern
- Nach der Löschung im Mobilen Backend wurde zusätzlich das Backend getrennt und komprimiert, nach dem neu verbinden anschliessender InsertInto löst gleichen Fehler aus
- Die Daten anstelle InsertInto in einem Rutsch einzufügen, wurde die Daten mithilfe rs.addnew, etc... eingefügt, gleicher Fehler
- Die Tabelle wurde definitiv erfolgreich gelöscht, die eingefügten ID's wurden noch nicht vergeben
Auffälligkeiten:
- Es werden insgesamt 5 Tabellen neu befüllt
- Die erste zu synchronisierende Tabelle wird korrekt ausgeführt
- Bei der zweiten Tabelle funktioniert InsertInto nicht mehr
- Die zweite Tabelle enthält Leerzeichen im Spaltenname
- Die Integrität wird nicht verletzt
Ich bin um jeden Tipp dankbar.
Vielen Dank für das lesen....
|