ch habe ein akutes Problem beim Zugriff auf den SQL Server. Seit vielen Jahren nutze ich folgendes Prinzip.
Im VBA lege ich einen neuen Datensatz in einem Recordset an. Da der SQL Server die ID erst nach dem Speichern vergibt mache ich folgendes.
Code ist natürlich verkürzt
...
...
tb.update
tb.movelast
vID = tb![ID]
Seit ein paar Tagen reagiert das Access / SQL nun anders und ich bekomme nun bei dem unveränderten Code eine Fehlermeldung "Datensatz ist gelöscht".
Die Fehlerursache besteht nun darin, das der Recordset nicht den neu angelegten Datensatz beinhaltet. Setze ich nun ein
tb.requery
vor die Zeile
vID = tb![ID]
so klappt es problemlos.
Nun kommt die Frage, hat sich der ODBC Treiber oder irgendetwas anderes geändert? Warum geht der Code, der seit Jahren läuft nun plötzlich nicht mehr?
Natürlich weiß ich, daß ich tausend andere Möglichkeiten hätte vorzugehen, ich muß aber wissen warum der unveränderte Code nun plötzlich nicht mehr funktioniert.
Vielen Dank für Eure Ideen!
cu Maik
Zitat von: PapaMaik am Januar 27, 2020, 18:20:33
Nun kommt die Frage, hat sich der ODBC Treiber oder irgendetwas anderes geändert? Warum geht der Code, der seit Jahren läuft nun plötzlich nicht mehr?
Du hast die Tabellen neu verknüpft.
In Access 365/2016/2019 Version 1912 Build 16.0.12325.* gibt es einen Bug, der dafür sorgt, dass Autowert/Identity-Spalten nicht mehr als solche erkannt werden.
Zum Glück gibt es auch bereits ein Update das den Fehler korrigiert. - Einfach "Update Now" bei den Office Updates anstoßen.
Weitere Informationen:
Access does not recognize the Identity Column in a linked SQL Server table (https://support.office.com/en-us/article/access-does-not-recognize-the-identity-column-in-a-linked-SQL-server-table-ae418bbf-2658-453a-82f1-7e043812d60d)
Volkommen richtig, ich habe die Tabellen neu verknüpft.
Wenn das stimmt bin ich Dir echt was schuldig !!
Zitat von: PapaMaik am Januar 28, 2020, 06:19:02
Volkommen richtig, ich habe die Tabellen neu verknüpft.
Wenn das stimmt bin ich Dir echt was schuldig !!
Ich denke, das stimmt schon.
Nachdem du das neuste Update zu Fehlerkorrektur installiert hast, musst du natürlich nochmal neu verknüpfen, damit die Identiy-Spalten wieder erkannt werden.
jap das war es :-)