Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Fehler ident_current

Begonnen von Bopi, Februar 17, 2025, 15:35:16

⏪ vorheriges - nächstes ⏩

Bopi

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?

Bitsqueezer

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

PhilS

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?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor