TempVars - Получить идентификатор для использования в следующей форме - PullRequest
0 голосов
/ 27 апреля 2018

В моей базе данных пользователь создает новую запись с помощью такой формы;

enter image description here

После нажатия кнопки сохранения запись затем вставляется в ConTblConsumables , Вот пример кода за кнопкой сохранения;

    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

enter image description here

После того, как запись будет вставлена, я хочу открыть другую форму, где пользователь может затем назначить родительский компьютер для этой части. Причина, по которой я хочу сделать это, заключается в том, что несколько машин могут использовать одну и ту же деталь (многие ко многим). Который при выборе машины обновит эту таблицу;

enter image description here

Столбец расходных материалов - это ComboBox, который связан с таблицей ConTblConsumables и, следовательно, почему мне требуется, чтобы идентификатор предыдущего сохранялся в TempVar.

Я считаю, что если бы я использовал TempVars ближе к концу кода на кнопке сохранения, то когда запись вставляется в таблицу ConTblConsumables , то TempVars записывает идентификатор строки, которая запись была вставлена ​​в, таким образом, она собирается получить идентификатор для использования в следующей форме.

Мой вопрос: как мне написать это в коде? Или даже если это возможно?

Спасибо

enter image description here

1 Ответ

0 голосов
/ 27 апреля 2018

Как я понимаю, в таблице ConTblConsumables у вас есть ключевой столбец ID с Autonumber типом данных, и вам нужно знать идентификатор вставленной строки. Если так, то лучше использовать набор записей вместо оператора 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
...