Hallo Zusammen
Ich arbeite mit Access 365 als FE und PostgreSQL als BE. Die Migration habe ich erst vor ein paar Monaten vorgenommen. Jetzt bin ich in der Testphase und habe festgestellt, dass ich keine neue Daten eingeben kann. Das Feld id, welches das PK-Feld ist wird von Access grundsätzlich bei Eingabe des ersten Zeichens in einem neuen DS zur Verfügung gestellt. Bei einer externen BE ist das nicht so. Access sendet also den Befehl ident_current um die nächste id zu vergeben. Dieser Befehl wird von PostgreSQL aber nicht erkannt und dementsprechend kommt die Fehlermeldung. Der DS kann also nicht gespeichert werden. Dabei spielt es keine Rolle ob ich den DS über ein Formular erfassen will oder direkt in die Tabelle eingebe.
Das Feld id wird in Access als AutoWert erkannt. In PostgreSQL ist es vom Typ Serial. Im ODBC Treiber ist die Einstellung "Extra Options" auf 0x2 eingestellt welches genau dieses Problem verhindern soll. Tut es aber nicht.
Ich kann zwar den Wert der letzten id auslesen (und hochzählen) aber da das Feld nicht manuell beschrieben werden kann, kann ich den Wert nicht eintragen.
Weiss jemand was ich noch zu beachten habe? Irgendwelche Tips?
Hallo,
sieht so aus, als wäre "SERIAL" wohl die veraltete Methode.
Hier steht, wie man es machen soll mit IDENTITY:
https://www.postgresql.org/docs/current/ddl-identity-columns.html
https://stackoverflow.com/questions/55300370/postgresql-serial-vs-identity
Den Rest mußt Du selbst googlen, ich kenne PostgreSQL nur vom Weghören...:)
Gruß
Christian
Zitat von: Bopi am Februar 17, 2025, 15:35:16Das Feld id wird in Access als AutoWert erkannt. In PostgreSQL ist es vom Typ Serial. Im ODBC Treiber ist die Einstellung "Extra Options" auf 0x2 eingestellt welches genau dieses Problem verhindern soll. Tut es aber nicht.
Du hast nach der Anpassung dieser Option im ODBC-Treiber die Tabellen neu nach Access verknüpft?