Jump to content

ID aus SQL Recordset ermitteln - Geänderter Treiber?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...