首页 > 解决方案 > 根据您首先插入一个表的值一次插入多个表

问题描述

我正在尝试一次在多个表中创建一行。我遇到的问题是除了第一个表之外的所有表都需要第一个 INSERT 语句中的自动编号/主键。我不完全确定在第一个表之外的表中输入什么值。非常感谢您的帮助!

这是我正在使用的代码:

Private Sub cmdCreate_Click()

    If DCount("*", "[tblRegSR]", "[WorkOrderID] = " & Me![txtID]) > 0 Then
        MsgBox "This record already exists", vbOKOnly + vbExclamation, "Duplicate Record"
    Else
        DoCmd.RunSQL "INSERT INTO tblRegSR (WorkOrderID, CustomerID) VALUES (Me!txtID.Value, Me!Customer.Value)"
        DoCmd.RunSQL "INSERT INTO tbFirstSR (ServiceRecordID) VALUES (WhatGoesHere)"

    End If
End Sub

WhatGoesHere 通常是我插入数据的第一个表的 ID 字段。

标签: sqldatabasevbams-accessinsert

解决方案


DoCmd.RunSQL "INSERT INTO tblRegSR (WorkOrderID, CustomerID) VALUES (Me!txtID.Value, Me!Customer.Value)"

假设您在 tblRegSR 中有一个名为 ID 的字段作为 AutoNumber,您可以将其插入到第二个表中,如下所示:

DoCmd.RunSQL "Insert into tblFirstSR (ServiceRecordID) Select Max(ID) from tblRegSR "

推荐阅读