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

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

Link zu diesem Kommentar
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.

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...