You can use COM automation. If your new system was, for example, Excel, you can use the VBA code as follows:
Sub TestCOMtoAccess()
' Has References to Microsoft Access Object Library & Microsoft DAO 3.6 Object Library
Dim oAccess As Access.Application
Dim oForm As Access.Form
Dim RS As DAO.Recordset
' This assumes that exactly one instance of Access is running, with your old application
Set oAccess = GetObject(, "Access.Application")
Set oForm = oAccess.Forms("your_giant_form")
' find the record you are looking for
Set RS = oForm.RecordsetClone
RS.FindFirst "myPrimaryKey = 42"
' and navigate the form to this record
If Not RS.NoMatch Then
oForm.Bookmark = RS.Bookmark
End If
RS.Close
End Sub
and according to How to interact with other programs with OLE Automation in C #? It adapts easily to C # and .NET.
# Windows Forms :
using System;
using System.Windows.Forms;
namespace ComAutoWindowsFormsApp
{
public partial class MyCsharpForm : Form
{
Microsoft.Office.Interop.Access.Application accApp;
public MyCsharpForm()
{
InitializeComponent();
}
private void MyCsharpForm_Load(object sender, EventArgs e)
{
accApp =
(Microsoft.Office.Interop.Access.Application)
System.Runtime.InteropServices.Marshal.GetActiveObject("Access.Application");
}
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Access.Form accForm = accApp.Forms["your_giant_form"];
Microsoft.Office.Interop.Access.Dao.Recordset accRs = accForm.RecordsetClone;
accRs.FindFirst("myPrimaryKey = 42");
if (!accRs.NoMatch)
{
accForm.Bookmark = accRs.get_Bookmark();
}
accRs.Close();
}
}
}