我在 DAO 中有一个代码连接到 SQL Server 2008 中的链接表。我需要在 .AddNew
上获取新创建的自动编号.
Set db = CurrentDb
Set rs = db.OpenRecordset("AuditTrail")
rs.AddNew
rs("ActionID") = actionAdd
rs("dtDateTime") = Now()
rs("FormName") = frmName
rs("TableName") = tblName
rs("RecordID") = actionAdd
rs("Comment") = Nz(comment, "")
rs("UserID") = UserIDName
rs("UsernamePC") = VBA.Environ("USERDOMAIN")
rs("DomainPC") = VBA.Environ("USERDOMAIN")
rs("ComputerNamePC") = VBA.Environ("COMPUTERNAME")
rs.Update
rs.Close
如果我使用
rs("AuditTrailID")
之前 rs.Close
,它返回 1(第一个条目)。
最佳答案
设置 Bookmark
属性等于 LastModified
属性返回到您刚刚添加的记录。
编辑:正如 Conrad Frix 所指出的,使用 dbSeeChanges
打开记录集时的选项:
Set db = CurrentDb
Set rs = db.OpenRecordset(Name:="AuditTrail", Options:=dbSeeChanges)
rs.AddNew
rs("ActionID") = actionAdd
' ... update additional fields
rs.Update
rs.Bookmark = rs.LastModified
Debug.Print rs("ID")
rs.Close
关于ms-access - Access : Get newly created auto number in DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839377/