Есть несколько способов сделать это. Один из самых красивых, которые я видел, указан ниже. К сожалению, я не помню, откуда я взял этот код, поэтому я не могу отдать должное, где он должен.
Разместите приведенный ниже код в новом модуле вашей базы данных.
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
Function DoAccessWindow(nCmdShow As Long)
' This function can minimize Access behind the scenes.
'Usage Examples
'Maximize window:
' ?DoAccessWindow(SW_SHOWMAXIMIZED)
'Minimize window:
' ?DoAccessWindow(SW_SHOWMINIMIZED)
'Hide window:
' ?DoAccessWindow(SW_HIDE)
'Normal window:
' ?DoAccessWindow(SW_SHOWNORMAL)
'
Dim loX As Long
Dim loform As Form
On Error Resume Next
Set loform = Screen.ActiveForm
If Err <> 0 Then 'no Activeform
If nCmdShow = SW_HIDE Then
MsgBox "Cannot hide Access unless a form is on screen"
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
Err.Clear
End If
Else
If nCmdShow = SW_SHOWMINIMIZED And loform.Modal = True Then
MsgBox "Cannot minimize Access with " & (loform.Caption + " ") & "form on screen"
ElseIf nCmdShow = SW_HIDE And loform.PopUp <> True Then
MsgBox "Cannot hide Access with " & (loform.Caption + " ") & "form on screen"
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
End If
DoAccessWindow = (loX <> 0)
End Function
Теперь вы можете использовать функцию DoAccessWindow (), чтобы связываться с окном доступа. Вы можете поиграть с опцией скрытия, так как она полностью скрывает интерфейс доступа. Предупреждение: любая форма, которую вы хотите отобразить, должна быть всплывающей и модальной, чтобы быть видимой.
Так, например, в событии Form_Open вы можете использовать код DoAccessWindow (0), чтобы скрыть интерфейс Access, затем в событии Form_Close вы будете использовать DoAccessWindow (1), чтобы снова показать интерфейс.