Ms access TempVars-获取ID以在下一个表单中使用

Ms access TempVars-获取ID以在下一个表单中使用,ms-access,vba,Ms Access,Vba,在我的数据库中,用户通过这样的表单创建一个新记录 按下保存按钮后,记录将被插入到contbl,下面是保存按钮后面的代码示例 Private Sub btnSave_Click() Dim strAddNewConsumable As String Dim strCompany As String Dim strConName As String Dim strConID As String Dim strCboConSupplier As St

在我的数据库中,用户通过这样的表单创建一个新记录

按下保存按钮后,记录将被插入到contbl,下面是保存按钮后面的代码示例

    Private Sub btnSave_Click()

    Dim strAddNewConsumable As String
    Dim strCompany As String
    Dim strConName As String
    Dim strConID As String
    Dim strCboConSupplier As String
    Dim strConTargetLevel As String
    Dim strConCost As String

        strCompany = Me.ConCompany
        strConName = Me.txtConName
        strConID = Me.txtConID
        strCboConSupplier = Me.CboConSupplier
        strConTargetLevel = Me.txtConTargetLevel
        strConCost = Me.txtConCost

        strAddNewConsumable = "INSERT INTO ConTblConsumables(strConCost, ConName, ConExtraID, Supplier, ConTargetLevel, Cost)" _
                    & "VALUES('" & strCompany & "', '" & strConName & "', '" & strConID & "', '" & strCboConSupplier & "', '" & strConTargetLevel & "', '" & strConCost & "')"

        CurrentDb.Execute (strAddNewConsumable)

        MsgBox "Record Inserted", vbExclamation

End Sub

插入记录后,我希望弹出另一个表单,用户可以在其中为该部件分配父计算机。我希望这样做的原因是多台机器可以使用相同的部件(多对多)。选择机器后,将更新此表

消耗品列是一个组合框,它与contblconstancess表有关系,因此我需要在TempVar中保留上一个ID

我相信,如果我在save按钮的代码末尾使用TempVars,那么当记录插入表contbls时,TempVars会记录插入记录的行的ID,因此即将获得ID,以便在下一个表单中使用

我的问题是如何用代码编写这个?或者即使这是可能的

多谢各位


据我所知,在表
contbl
中,您有一个带有
Autonumber
数据类型的键列
ID
,您需要知道插入行的ID。如果是这样,最好使用记录集而不是INSERT语句。大概是这样的:

Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("select * from ConTblConsumables")

With rst
    .AddNew
    'here ID already known and you can store it in your variable
    TempVars!MyID = !ID.Value
    !strConCost = Me.ConCompany
    !ConName = Me.txtConName
    ....
    .Update
End With

rst.Close
Set rst = Nothing

这是可能的。看一个例子,这似乎是正确的方式,但我得到了一个错误信息;运行时错误“32538”:临时变量只能存储数据。它们不能存储对象。我对记录集nore TempVars没有太多经验,所以请告诉我:D我在我的主要帖子底部附上了一张图片,这样你可以看到它确实记录了最后一个值,但我认为格式可能不正确?使用
!ConID.Value
instead对此表示感谢。与我目前拥有的记录相比,插入新记录似乎更容易。再次感谢你!