2017-11-21 9 views
0

* .accdbを起動すると、モーダルポップアップフォームが開き最大化されます。フォームが最小化されると、メインDBウィンドウは、バックグラウンドで見ることができます。MSAccessモーダルポップアップフォームを開くメインDBウィンドウを開く

enter image description here

は、それが表示されないように、モーダルポップアップフォームが最小化されたメインDBウィンドウを最小化することが可能ですメインのDBウィンドウはまったくありません。

私は以下のコードを試しました。ただし、「XXXフォームで画面にアクセスを最小化できません」というエラーが表示されます。

誰でも手助けできますか?

更新:フォームをModal:Noに設定すると、正常に動作します。 Main DBウィンドウはタスクバーに最小化されます。しかし、タスクバーのアイコンをクリックすると、メインDBウィンドウをバックグラウンドでポップアップフォームが再度開きます。メインDBウィンドウを通知領域に最小化することは可能ですか?

Option Compare Database 
Option Explicit 

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 fSetAccessWindow(nCmdShow As Long) 

    Dim loX As Long 
    Dim loForm As Form 
    On Error Resume Next 
    Set loForm = Screen.ActiveForm 

    If Err <> 0 Then 
     loX = apiShowWindow(hWndAccessApp, nCmdShow) 
     Err.Clear 
    End If 

    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 
    fSetAccessWindow = (loX <> 0) 
End Function 

これはオンロードイベントです。ロードイベントで

Private Sub Form_Load() 
    Call fSetAccessWindow(SW_SHOWMINIMIZED) 
End Sub 

答えて

0

使用この

Private Sub Form_Load() 
    Call fSetAccessWindow(2) 
End Sub 
関連する問題