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

时间:2019-02-06 13:58:46

标签: sql-server access-vba 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为“空”。有什么想法吗?

编辑:事后使用“ SELECT @@ Identity”确实可以,但是并不可靠,我知道还有更好的方法。

2 个答案:

答案 0 :(得分:0)

尝试

 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

答案 1 :(得分:0)

我已经解决了这个问题,并认为我会在将来给任何对此有意见的人一个答案。 用于打开Recordset的连接对象的光标位置为“ adUseServer”。将光标位置更改为“ adUseClient”后,我可以看到新创建的记录的ID。