5 строк кода

Как писать приложения на MS Access

Как получить значение ключевого поля для добавленной записи

Комментариев нет

Всем привет!

Как оказалось вопросы по этой теме все еще возникают. Рассказываю :-).

Значение ключевого поля новой записи при помощи библиотеки DAO можно получить следующим образом (K_KLIENT — ключевое поле):

Dim rst as DAO.Recordset
Dim lPk as Long

' ....
rst.AddNew
rst("T_KLIENT")="ОАО Рога и копыта"
' ...

А дальше есть несколько вариантов:
— 1-й вариант:

lPk = rst("K_KLIENT")
rst.Update

— 2-й вариант:

	
rst.Update
rst.Bookmark = rst.LastModified
lPk = rst("K_KLIENT")

1-й вариант работает только с таблицами MS Access, т.к. значение счетчика вычилсяется сразу же после AddNew. На всех остальных нужно проверять. Например, с ODBC таблицами 1-й вариант точно не прокатит, т.к. значение счетчика вычисляет сервер.

C библиотекой ADO получится только 1-й вариант.

Dim rst As ADODB.Recordset

Set rst = New ADODB.Recordset
rst.Open "tbl1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rst.AddNew
MsgBox rst("key")
rst.Update

А с серверами БД придется что-то придумывать, например, использовать TimeStamp, чтобы найти только что добавленную запись.

До встречи!

(с) Скоков Сергей

Written by Сергей Скоков

Апрель 2nd, 2009 at 3:10 пп

Posted in решения

Leave a Reply