Я делаю это:
With rs .AddNew ' create a new record ' add values to each field in the record .Fields("datapath") = dpath .Fields("analysistime") = atime .Fields("reporttime") = rtime .Fields("lastcalib") = lcalib .Fields("analystname") = aname .Fields("reportname") = rname .Fields("batchstate") = bstate .Fields("instrument") = instrument .Update ' stores the new record End With ' get the last id Set rs = cn.Execute("SELECT SCOPE_IDENTITY()", , adCmdText)
это не работает должным образом. возвращается NULL
Это не работает, потому что ваши обновления и ваше второе выполнение находятся в разных областях.Вы можете выбрать SELECT IDENT_CURRENT ('tablename')
IDENT_CURRENT подходит для однопользовательской среды.
При обновлении вы уже записаны.
.Update lTheNewID = .Fields("ThisTableID")
lTheNewID будет содержать значение новой записи.