如何从记录集中获取 ID 字段?

How to get ID field from recordset?

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

此代码将一条记录添加到我的一个表中。添加后我需要获取主键,以便我可以在另一种方法中使用它。根据 Access,RSD!StandardFoldersID 为 "empty"。有什么想法吗?

编辑:之后使用 "SELECT @@Identity" 确实有效,但它不可靠,我知道有更好的方法。

尝试

 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

我已经解决了这个问题,我想我会为以后看到这个问题的任何人提供答案。 用于打开 Recordset 的连接对象将 'adUseServer' 作为光标位置。将光标位置更改为 'adUseClient' 后,我能够看到新创建记录的 ID。