ms-access - Access : Get newly created auto number in DAO

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

最佳答案

设置 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/

相关文章:

arrays - 如何将数组传递给VBA中的函数?

java - 打开连接时出现 UCanAccess 异常 - 引用的列上不存在 UNIQUE 约束

VBA Microsoft Visio 文档操作,无需打开应用程序

vba - 获取错误 3048 : Cannot open any more databases

java - 使用模型作为 dao 的前端

android - 查找 String[] 是否包含 Room 数据库 Android 中的 String

sql - 奇怪的 MS Access 联盟问题 : Union is not actually union

excel - 如何处理类内的 VBA 错误?

vba - 如何识别有助于作为小计的颜色格式单元格的行范围,并应用于多个列?

java - 了解 DAO 模式和接口(interface)