访问:在DAO中获取新创建的自动编号

时间:2012-01-12 17:22:23

标签: ms-access vba dao

我在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(第一个条目)。

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:0)

如果是您要插入的SQL Server数据库,则数据库上的触发器不会是更好的解决方案。