access

わかりやすく解説!shiftを押しながらAccessを開いても編集不可にする方法

access
編集不可設定してあるAccessファイルでもshiftキーを押しながら開くと編集ができますよね。 納品先などでshiftキーの方法が知られていた場合、改変の可能性もあります。   この記事では、Accessでパスワードを入力しないと編集ができないようにする方法と手順を紹介します。  

shiftを押しながらAccessを開いても編集不可にする方法

  Accessのプロパティに”AllowBypassKey”があります。 このプロパティに”True”か”False”を設定することで、「shiftキーを押しながら起動で編集可能」の機能を不可にすることができます。  
  • True:shiftキーを押しながら起動で編集可能機能を有効
  • False:shiftキーを押しながら起動で編集可能機能を無効
   

shiftを押しながらAccessを開いても編集不可にする手順

 

accessファイルを開き、パスワード入力用のフォームを作成

  ここでは、パスワードを入力するテキストコントロールと、ボタンのみを配置します。   accessファイルを開き、パスワード入力用のフォームを作成  

コードエディタを開き、パスワード設定処理のコードを書く

コードエディタを開く

 

参照設定

DAOに関して、32bitと64bitで選択するものが違うので注意
64bit:Microsoft Office 16.0 Access databass engine Object Library 64bit:Microsoft Office 16.0 Access databass engine Object Library
32bit:Microsoft DAO 3.6 Object Library 32bit:Microsoft DAO 3.6 Object Library
 

プログラミング

パスワードは固定値で「pass」としています。 ソースの全文は画像の次に記載してあります。   プログラミング
プログラムの全文
Option Compare Database Option Explicit '''画面を開くとき Private Sub Form_Open(Cancel As Integer)    'shiftキー起動編集機能を無効    Fnc_allowBypassKey False End Sub '''認証ボタンのクリック時 Private Sub btn_Click()    If txt.Value = "pass" Then       'shiftキー起動編集機能を有効       Fnc_allowBypassKey True       '許可メッセージ       MsgBox "編集を許可します。一旦AccessDBを閉じてください"    Else       'shiftキー起動編集機能を無効       Fnc_allowBypassKey False    End If End Sub '-------------------------------------- '引数 'val:allowBypassKeyプロパティに適用する値(True or False) '-------------------------------------- Function Fnc_allowBypassKey(val As Variant)    '変数を定義    Dim cdb As DAO.Database    Dim pro As DAO.Property    '自分自身のDBを設定    Set cdb = CurrentDb    'エラーが発生しても無視する    On Error Resume Next       'AllowBypassKeyを初期化       cdb.Properties.Delete "AllowBypassKey"    On Error GoTo 0    'AllowBypassKeyを設定    Set pro = cdb.CreateProperty("AllowBypassKey", dbBoolean, val, True)    'DBに適用    cdb.Properties.Append pro End Function
 

accessファイルのメニューバーから「ファイル」を選択

accessファイルのメニューバーから「ファイル」を選択  

「オプション」を選択

「オプション」を選択  

「Accessのオプション」ダイアログが開いたら、メニューから「現在のデータベース」を選択

  下記の手順で設定値を変更する
  1. ”アプリケーションオプション”のカテゴリから”フォームの表示(D)”をパスワード入力用のフォームに設定
  2. ”ナビゲーション”のカテゴリから「ナビゲーション ウィンドウを表示する(N)」のチェックをOFF
  3. ”リボンとツールバーのオプション”のカテゴリから「すべてのメニューを表示する(M)」のチェックをOFF
    設定完了!Accessファイルを閉じる    

パスワード設定確認方法

 

shiftキーを押しながらパスワード設定したAccessファイルを開く

shiftキーを押しながらパスワード設定したAccessファイルを開く  

パスワードを入力し、認証ボタンをクリック

パスワードを入力し、OKボタンをクリック  

パスワード解除のメッセージを表示される

パスワード解除のメッセージを表示される  

メッセージに従い、Accessファイルを閉じてから、再び、shiftキーを押しながらパスワード設定したAccessファイルを開く

  認証画面が開かずに、Accessファイル編集できるモードで起動したら成功です。   メッセージに従い、Accessファイルを閉じてから、再び、shiftキーを押しながらパスワード設定したAccessファイルを開く   おわり      
関連記事

「本業の給料だけでは、将来が少し不安…」「自分の技術、会社の外で通用するんだろうか?」「新しいスキルを身につけたいけど、学ぶだけじゃなく実践で使ってみたい」 もしあなたがシステムエンジニア(SE)として、このような思いを少しで[…]

【SE副業の始め方】稼ぐためのクラウドソーシングサイト3選!月10万円を突破する具体的戦略

実務でShift起動を制御するときの注意点

AccessでShiftキー起動を制御する目的は、利用者が意図せず編集画面や管理用オブジェクトに触れることを防ぐためです。ただし、管理者まで操作できなくなると保守作業に支障が出るため、設定前にバックアップと解除手順を必ず確認しておきます。

実務では、利用者向けファイルと管理者向けファイルを分ける、変更前のファイルを保存しておく、誰が解除できるかを決めておく、といった運用が必要です。単に編集不可にするだけでなく、保守できる状態を残すことが大切です。

  • 変更前のバックアップを残しているか
  • 管理者が解除できる手順を把握しているか
  • 利用者の通常操作に影響がないか確認したか
  • 共有フォルダの権限とAccess側の制御を分けて考えているか

Accessの編集制御全体は、Accessの編集不可の方法もあわせて確認すると整理しやすいです。