PapaMaik 0 Geschrieben 27. Januar 2020 Melden Teilen Geschrieben 27. Januar 2020 Ich 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 Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 28. Januar 2020 Melden Teilen Geschrieben 28. Januar 2020 vor 13 Stunden schrieb PapaMaik: tb.update tb.movelast vID = tb![ID] Wenn nach dir jemand Daten speichert, kriegst Du u.U. die falsche ID retour. An der Stelle sollte man mit Stored Procedures arbeiten, die kann man von Access aus aufrufen und das Ergebnis zurück bekommen. Mit SCOPE_IDENTITY kriegst Du die richtige ID zurück. Details beim Hersteller vom SQL Server: https://docs.microsoft.com/de-de/sql/t-sql/functions/scope-identity-transact-sql?view=sql-server-ver15 vor 13 Stunden schrieb PapaMaik: 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? Wenn Du den ODBC Treiber nicht aktualisiert hast, sollte sich auch nichts am Treiber ändern. Ich vermute eher eine Veränderung in Access. Zitieren Link zu diesem Kommentar
PapaMaik 0 Geschrieben 28. Januar 2020 Autor Melden Teilen Geschrieben 28. Januar 2020 Es war ein office Update... https://support.office.com/de-de/art...rs=de-DE&ad=DE Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.