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