Hallo SQL-Spezialisten,
"mühsam nährt sich das Eichhörnchen"
Nach der Erweiterung des OpenRecordset mit dbOpenDynaset und dbSeeChanges öffnet sich die nächste Falle:
Neuanlegen eines Datensatzes mit Autowert
Folgendes Coding hat unter Access die Variable Ergebnis immer mit der Projekt_ID des gerade neu erstellten Datensatzes versorgt:
Dim rs_new as DAO.Recordset
Set rs_new = CurrentDb.OpenRecordset("Projekt", dbOpenDynaset, dbSeeChanges)
rs_new.AddNew
Ergebnis = rs_new!Projekt_ID <== hier kam die neu angelegte ID zurück
rs_new!Projekt_Titel = "???????"
rs_new.Update
rs_new.Close
set rs_new = nothing
Läuft das Coding jetzt mit einer SQL-Server-verlinkten "Projekt"-Tabelle ab,
bleibt Ergebnis = NULL
Der Datensatz wird zwar mit einer neuen Projekt_ID angelegt, allerdings bekomme ich diese neue Projekt_ID nach dem Anlegen nicht zurückgeliefert!!!!!
Gibt es andere Methoden, die ich verwenden muß um einen Datensatz neu anzulegen?
Auch hier würde ich dem Finder der richtigen Antwort gerne ein Bier in München spendieren! :-)
Vielen Dank für's drüber Nachdenken
Herzliche Grüße
Klaus-Jürgen Gruber
PS:
Mein Versuch, Ergebnis erst nach dem Update abzufragen ist kontraproduktiv, da dann die Projekt_ID eines (willkürlichen) anderen Datensatzes zurückkommt:
Set rs_new = CurrentDb.OpenRecordset("Projekt", dbOpenDynaset, dbSeeChanges)
rs_new.AddNew
rs_new!Projekt_Titel = "???????"
rs_new.Update
Ergebnis = rs_new!Projekt_ID <== zweckloser, irritierender Versuch
rs_new.Close
set rs_new = nothing
So ist die Projekt_ID übrigens angelegt:
in Access:
Primärschlüssel,
Feldgröße: Long Integer
Neue Werte: Inkrement
Indiziert: Ja(OhneDuplikate)
...
SSMA hat im SQL-Server für die Projekt_ID folgende Einstellungen erzeugt:
Datentyp: Int
Systemtyp: Int
Primärschlüssel: True
NULL-Werte zulassen: False
...
...
Identität: True
Identitätsseed: 1
ID-Inkrement: 1
...
...