Как получить поле идентификатора из набора записей? - PullRequest
0 голосов
/ 06 февраля 2019
Private Sub btnAdd_Click()
Dim RST As New ADODB.Recordset
With RST
     Open "SELECT * FROM tblStandardFolders2009 WHERE StandardFoldersID = 0", fnCNN, adOpenDynamic, adLockOptimistic
        .AddNew
            !Description = Me!txtAddGeneric
            !MakeNewContract = False
        .Update
        fnStandardFolders2009ID (RSD!StandardFoldersID)
        .Close
    End With
Set RST = Nothing

Этот код добавляет запись в одну из моих таблиц.Мне нужно получить первичный ключ после его добавления, чтобы я мог использовать его в другом методе.RSD! StandardFoldersID является «пустым» в соответствии с Access.Любые идеи?

РЕДАКТИРОВАТЬ: Использование «SELECT @@ Identity» впоследствии работает, но это не надежно, и я знаю, что есть лучшие способы.

Ответы [ 2 ]

0 голосов
/ 15 августа 2019

Я решил проблему и подумал, что смогу дать ответ любому, кто в будущем увидит это.Объект соединения, используемый для открытия набора записей, имел в качестве местоположения курсора adUseServer.После изменения местоположения курсора на adUseClient я смог увидеть идентификатор вновь созданных записей.

0 голосов
/ 06 февраля 2019

Попробуйте

 Private Sub btnAdd_Click()
    Dim RST As New ADODB.Recordset
    With RST
         Open "SELECT * FROM tblStandardFolders2009 WHERE StandardFoldersID = 0", fnCNN, adOpenDynamic, adLockOptimistic
            .AddNew
                !Description = Me!txtAddGeneric
                !MakeNewContract = False                    
            .Update
            .Bookmark = .LastModified
            fnStandardFolders2009ID (CLng(RST!StandardFoldersID))
            .Close
        End With
    Set RST = Nothing
...