Ай вэй... Вообще детский вопрос. Реализовать его можно минимум тремя вариантами.
Я лично, чтобы руку не сбивать, передаю через параметры формы.
' собираю строку для передачи в форму для редактирования
strOpenParam = me.txt_id & "#"
DoCmd.OpenForm "frmLocationAddEdit", acNormal, , , , acDialog, strOpenParam
Где me.txt_id - то самое поле. А "#" - разделитель.
Если надо еще параметров - передаешь их таким же образом, добавляя разделитель.
И в форме 2 делаешь вот это:
Private Sub Form_Open(Cancel As Integer)
Dim searchArgument As String
searchArgument = Nz(OpenArgs, "")
If Len(searchArgument) = 0 Then
MsgBox "The open arguments are not correctly transferred ", vbInformation
Cancel = True
Exit Sub
End If
me.id_form = Split(OpenArgs, "#")(0)
У этого метода есть один, но серьезный недостаток. Разделитель, в данном случае # не должен присутствовать в переданной строке. Поэтому для себя выбери разделитель другой - и контролируй передаваемую строку перед тем, как, открывать вторую форму.
Достоинство его - удобно передавать кучу данных сразу, наглядно.