访问vba:如何在两个相关表中执行插入?

时间:2012-02-23 23:49:30

标签: ms-access vba foreign-key-relationship

这很可能是一个基本问题 - 但我无法找到任何线索,所以我转向专家!

我有一个表单中的子表单,我希望在相关表中插入行。父表具有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?

1 个答案:

答案 0 :(得分:2)

在第一次查询后,您可以运行第二个查询"Select @@Identity"以获取当前连接中的最后一个自动生成的数字,例如(未经测试)

Dim rs2 As Recordset
Set rs2 = CurrentDb.OpenRecordset("Select @@Identity")
newId = rs2(0)