2017-05-26 11 views
1

アクセスナビゲーションペインを閉じるための次のコードが機能します。MS-Accessナビゲーションペインは表示されていますか?

DoCmd.NavigateTo "acNavigationCategoryObjectType" 
DoCmd.RunCommand acCmdWindowHide 

しかし、問題は、ナビゲーションウィンドウが既に閉じられているならば、acCmdWindowHideがちょうど開いていた他のオブジェクト(すなわちフォーム、テーブル)を隠すことです。 私のコードでDoCmd.TransferDatabaseを使用し、これを実行するとナビゲーションペインが開かれることがあります。これは、データのインポートに関する警告メッセージが表示され、ユーザーがキャンセルをクリックした場合に発生する可能性があります。ユーザーにペインが表示されていないことを確認するには、非表示にしたいが、既に隠れている場合は隠すことはないが、上記のコマンドはフォームを隠すだけで、それは私が望むものではない。

ライン

DoCmd.NavigateTo "acNavigationCategoryObjectType" 

常に実行されると、何も返しません。ナビゲートするナビゲーションペインがない場合、エラーは返されません。

私の質問は次のとおりです。ナビゲーションペインが現在開いているため、閉じる必要があることをどのように判断できますか。 上記のコードを使用すると、ナビゲーションペインを閉じても他のオブジェクトを閉じないようにするにはどうすればよいですか?

答えて

1

This forum threadが示唆:

Public Function HideIt() 

    ' Employee is just any existing table 
    DoCmd.SelectObject acTable, "Employee", True 
    If Application.CurrentObjectName = "Employee" Then DoCmd.RunCommand acCmdWindowHide 

End Function 
+0

おかげで、これは私のために動作します。ただし、1つの例外があります。ナビゲーションペインに一部のオブジェクトのみを表示するフィルタがあり、このフィルタがCurrentObjectNameを許可しない場合、その名前のオブジェクトを決して選択できないため、上記のコードは機能しません。サンプル:Customerというフィルタを使用して、Customerのような名前のオブジェクトのみを表示します。上記のコードでは、フィルターが許可しないためにナビゲーションペインが開いていても、選択できない従業員を選択しようとしています。また、このフィルタはナビゲーションペインを非表示にしても消えません。私の場合は問題ありません。 – Edgar

関連する問題