AccessVBA Access2010のナビゲーションウィンドウ・クイックアクセスバーの表示切り替え
スポンサーリンク
Access2000(.mdb)ファイルの場合には、Shift+Enter起動に制限をかけることで、
テーブルなどのファイル内容閲覧に制限をかけることができます。
※参考サイト
上記サイトを参考にAccess2000ではデータベースウィンドウを非表示にすることができました。
自分の設定に落ち度があったせいか、
Access2010ではナビゲーションウィンドウ、クイックサクセスバーの非表示ができず、色々サイト検索しながら、以下の方法にたどり着きました。
以下、VBAの記述
'----------------------------------------------------------------------------------------------
'非表示にする場合
Function hideNavigationWindow
Dim db as database
Dim tbl1 as TabelDef '非表示にしておきたいテーブル
'ナビゲーションウィンドウの非表示
DoCmd.NavigateTO "acNavigationCategoryObjectType",""
DoCmd.RunCommand acCmdWindowHide
'クイックアクセスバーの非表示
Docmd.ShowToolbar "Ribbon",acToolbarNo
'テーブルの非表示
Set db = CurrentDb
Set tbl1 =db.TableDefs("テーブル名")
tbl1.Attributes = 1 '非表示=1, 表示=0
db.Close
Set db = Nothing
End Function
hideNavigationWindow をForm_Load時に呼ぶことによって起動時に非表示にすることができました。
反対にメンテナンスなどで表示させたい時には以下の通り。
'************************************************************************************************************
'再表示する場合
Function showNavigationWindow
Dim db as database
Dim tbl1 as TabelDef '非表示にしておいたテーブル
’ナビゲーションウィンドウの表示
DoCmd.NavigateTo "acNavigationCategoryObjectType",""
DoCmd.SelectObject acForm,"",True
'クイックアクセスバーの表示
Docmd.ShowToolbar "Ribbon",acToobarYes
'テーブルの表示
Set db = CurrentDb
Set tbl1 = db.TableDefs("テーブル名")
tbl1.Attributes = 0
db.Close
Set db = Nothing
End Function
'-------------------------------------------------------------------------------------------
以上、VBAの記述終わり。
再表示する場合には、フォームにパスワード入力欄を作って、
Enter キーを実行後、パスワードがあっていた場合に呼ぶようにして対応。
加えて、上記コードを記述した標準モジュールそのものをパスワードロックかけて完成としました。
今回は他のファイルからマスタ類を取り込んで、処理後に取り込んだマスタ類を削除する仕様にしており、上記ロックを設定したファイルそのものにはマスタ、データが最小限しか残っていないので、細かくロック自体の完成度の検証は軽くしか行なっていませんが、行けそうな気がしています。
※参考※標準モジュールのパスワード設定方法
■T'sWare Access Tips #610 〜VBAのモジュールにパスワードを設定するには?〜