none
ID aus SQL Recordset ermitteln - Geänderter Treiber? RRS feed

  • Allgemeine Diskussion

  • 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

    Montag, 27. Januar 2020 17:44

Alle Antworten

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

    Naja, und was hat sich an Deinem Setup geändert? Office-Updates?

    Evgenij Smirnov

    http://evgenij.smirnov.de

    Montag, 27. Januar 2020 17:52
  • Es war ein Office Update

    https://support.office.com/de-de/art...rs=de-DE&ad=DE

    Dienstag, 28. Januar 2020 15:35
  • Hi,

    für andere User wäre es sehr hilfreich zu wissen, welche Update genau es war.

    Dein Link ist leider so verkürzt, dass sich das entsprechende Update daraus nicht mehr ableiten lässt.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Dienstag, 28. Januar 2020 16:10
    Moderator
  • Das hatten wir hier auch schon mal:

    https://social.technet.microsoft.com/Forums/de-DE/9c96da67-b64a-4c60-a5ed-e936adf0dbf3/ssma-access-addnew-autowert?forum=sqlserverde

    a) "OpenRecordset mit dbOpenDynaset und dbSeeChanges"
    b) "rs.bookmark = rs.LastModified muß nach dem rs.Update eingefügt werden, dann ist der
    zuletzt eingefügte Datensatz greifbar und die Projekt_ID vefügbar."

    Dienstag, 28. Januar 2020 16:35