Надеюсь речь идет про MS Access.
Первый вариант.
Внимательно почитать справку про DoCmd
Второй вариант.
Пример использования:
перейти к записи в текущей форме
Код:
Call CM_FormGoToRecord("K_KLIENT", lK_KLIENT)
или
перейти к записи в открытой форме
Код:
Set frmKlient = Forms("f_klient")
Call CM_FormGoToRecord("K_KLIENT", lK_KLIENT, frmKlient)
Функция:
Код:
Public Function CM_FormGoToRecord(ByVal imPkFld As String, ByVal lPkVal As Long, Optional ByRef frm As Form = Nothing) As Boolean
'-- перейти на запись по ID
'-- frm можно не передавать, в этом случае она будет использован CodeContextObject
On Error GoTo Err_
If frm Is Nothing Then
Set frm = CodeContextObject
End If
If frm Is Nothing Then Exit Function
Dim rst As DAO.Recordset
Set rst = frm.RecordsetClone
rst.FindFirst imPkFld & " = " & lPkVal
If Not rst.NoMatch Then
frm.Bookmark = rst.Bookmark
End If
CM_FormGoToRecord = Not rst.NoMatch
rst.Close
Exit_:
Exit Function
Err_:
CM_FormGoToRecord = False
mc_Log.VC_LogErr ("CM_FormGoToRecord()")
Resume Exit_:
End Function