这很可能是一个基本问题 - 但我无法找到任何线索,所以我转向专家!
我有一个表单中的子表单,我希望在相关表中插入行。父表具有Id,它是自动编号字段;我需要使用新创建的行的Id并将其作为外键插入子表中。我尝试了以下方法:
Dim x As Recordset
Dim newId As Integer
Set x = CurrentDb.OpenRecordset("select * from T")
With x
.AddNew
!OtherColumns = SomeValues
.Update
newId = .Fields("Id")
End With
由于Id是自动编号列,因此可以为其分配下一个可用编号 - 在此子结束后,该表包含一个新行,其中ID已自动生成。 但是变量newId不包含为添加的行生成的新Id值。相反,它包含记录集中第一行的Id。
如何检索新ID?
答案 0 :(得分:2)
在第一次查询后,您可以运行第二个查询"Select @@Identity"
以获取当前连接中的最后一个自动生成的数字,例如(未经测试)
Dim rs2 As Recordset
Set rs2 = CurrentDb.OpenRecordset("Select @@Identity")
newId = rs2(0)