Accessでパスワードを入力して、パスワードが合えばフォームを開くようにする方法です。
注意ここでは、Accessのオプションでウィンドウを重ねて表示する設定にしています。
[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。従来からAccessを使用している方に ...
パスワード入力用フォームの作成
パスワード入力用のフォームを作成します。
[作成]タブをクリックして、[その他のフォーム]をクリックして、[モーダルダイアログボックス]をクリックします。
下のようにフォームが作成されます。
少し大きいので、[OK]ボタンと[キャンセル]ボタンをドラッグで上へ移動させて、下のようにフォームを小さくします。
パスワード入力用のテキストボックスを作成
[デザイン]タブの[テキストボックス]ボタンをクリックして、下のようにパスワード入力用の非連結のテキストボックスを作成します。
テキストボックスウィザードが表示された場合は[キャンセル]ボタンをクリックして閉じてください。
ラベルには、「パスワードを入力してください。」と入力します。
非連結のテキストボックスに名前を付けます。
プロパティの[その他]タブをクリックして、[名前]に「パスワード」と入力します。
プロパティが表示されていない場合は、[F4]キーを押して表示してください。
定型入力ウィザードで[パスワード」を選択
パスワードがアスタリスクで表示されるように設定します。
[データ]タブの[定型入力]をクリックして、[...]をクリックします。
[定型入力ウィザード]から[パスワード]をクリックします。
そして、[完了]ボタンをクリックします。
プロパティシートの[定型入力]には、以下のように[パスワード]と表示されます。
IMEの入力モード
パスワードは半角英数字を使用することが多いと思います。
IMEの入力モードをオフに設定すると、パスワードの入力がしやすくなります。
テキストボックスのプロパティの[その他]タブを開きます。[IME入力モード]を[オフ]にします。
パスワードのテキストボックス内にカーソルが移動すると、自動的にIME入力モードはオフになります。
セキュリティを気にするのであれば、[IME入力モード]を[半角英数]、[IME変換モード]を[無変換]にすると、パスワード入力時に履歴が表示されなくなります。
参考Accessでは解説していませんが、入力モードの切替については、Excelの入力規則で解説しています。参考にしてください。
-
データの入力規則を使ってIMEの入力モードを自動切り替え
Excelでは、[入力規則]を使って入力時の日本語入力をオンにしたり、オフにしたりすることができます。 この設定を行っておくと、入力時にIM ...
[OK]ボタンに埋め込みマクロを設定
[OK]ボタンにマクロを設定します。
[OK]ボタンを選択して、プロパティの[イベント]タブの[クリック時]にある[...]をクリックします。
下のように[マクロツール]が開かれます。
[ウィンドウを閉じる]はそのままにしておきます。
[新しいアクションの追加]の▼ボタンをクリックして、[If]をクリックします。
チェック[パスワード]テキストボックスに入力されたパスワードが正しければ、ウィンドウを閉じて、フォームを開きます。
パスワードが違うなら、「パスワードが違います」というメッセージボックスを表示するという条件を付けていきます。
テキストボックスに「[パスワード]="123"」と入力します。
パスワードは先で作成したパスワード入力用テキストボックスの名前です。
ここでは、パスワードは「123」にしていますが、任意のパスワードに変更してください。
[上へ移動]ボタンをクリックします。
下のようになったら、[ウィンドウを閉じる]を上へ移動します。
下のようになります。
次に[新しいアクションの追加]の▼ボタンをクリックして、
[フォームを開く]を選択します。
[フォーム名]にある▼ボタンをクリックして、パスワードが正しかった場合のフォームを指定します。
ここでは、[F_社員]を指定します。[Elseの追加]をクリックします。
[Else]の▼ボタンをクリックして、
今度は、[メッセージボックス]を選択します。
[メッセージ]のテキストボックスに[パスワードが違います]と入力します。
以下のようになっているかを確認します。
マクロを保存して閉じます。
下のようなメッセージが表示されたら、[はい]をクリックします。
フォームに名前を付けて保存
フォームに戻ったら、[F12]キーを押して[名前を付けて保存]ダイアログボックスを表示させて、フォームに名前を付けて保存します。
ここでは、[パスワード入力]とします。
空白のフォームの場合
ここでは、[OK]と[キャンセル]が設定済みのフォームをもとに作成しましたが、空白のフォームを使用した場合は、[OK] ボタンを作成後、クリック時イベントの[...]ボタンをクリックして[マクロビルダー]を選択してください。
設定は、上記で解説したとおりで、以下と同じ順番の設定になればOKです。
また、[キャンセル]ボタンは、以下のように[ウィンドウを閉じる]を設定します。
[オブジェクトの種類]の指定を省略した場合は、アクティブウィンドウが閉じられます。
パスワード入力フォームの動作確認
パスワード入力フォームを開いて、パスワードを入力して設定したフォームが開くか確認してください。
また、パスワードが違う場合はメッセージボックスが表示されるかも確認してください。
[キャンセル]ボタンをクリックすると、パスワード入力フォームが閉じると思います。
参考パスワード入力フォームを開いた時、テキストボックスにカーソルがあると便利ですね。タブオーダーで設定できます。
タブオーダーについては、以下の記事で解説しています。
-
フォームのタブオーダーとタブストップの設定
タブオーダーとは、キーボートの[Tab]キーや[Enter]キーを押して、カーソルがフォーム内のコントロールを移動するときの順番のことです。 ...
メニューフォームなどにパスワード入力フォームが開くように設定
作成した[パスワード入力]フォームをメニューフォームの[フォームを開く]ボタンの[クリック時]イベントなどに、設定します。
参考イベントプロシージャでの設定は、以下の記事で解説しています。
この記事内で設定した埋め込みマクロを[コードビルダー]を選択して、コードを書くとすれば、以下のようになります。
Private Sub コマンド1_Click()
If Me.パスワード = "123" Then
DoCmd.Close acForm, "パスワード入力"
DoCmd.OpenForm "F_社員"
Else
DoCmd.Close acForm, "パスワード入力"
MsgBox "パスワードが違います"
End If
End Sub