Вы можете использовать GetObject()
для возврата объекта Access.Application
из другого запущенного БД.С объектом приложения у вас есть доступ практически ко всему, что вам может понадобиться.Вот надуманный пример открытия формы (но вы можете сделать множество других вещей с объектом Application
):
Sub TestInterop()
Const mdbPath As String = "C:\OtherApp.mdb"
Dim OtherApp As Access.Application
Set OtherApp = GetObject(mdbPath)
OtherApp.Visible = True
OtherApp.DoCmd.OpenForm "Accounts"
End Sub
Если программа еще не запущена, вызов GetObject()
начнетсяприложение (вам нужно быть осторожным, если у вас установлено несколько версий Access, так как во время выполнения сложно определить, какая версия на самом деле откроет .mdb).Однако, если GetObject()
необходимо запустить приложение, оно сделает это с видимостью, установленной в False, поэтому мы явно установим для нее значение True.Если приложение уже запущено, установка его видимости в True не будет иметь никакого эффекта.