如何从记录集中获取 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。
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。