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

问题描述 投票:1回答:2
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”确实可以,但是不可靠,我知道有更好的方法。

sql-server access-vba recordset
2个回答
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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.