AccessVBAメモ

AccessVBAで作ったサンプルコード集

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のモジュールにパスワードを設定するには?〜