Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


IDとパスワードを用いてフォームを開く : Access裏技Tips



時と場合によっては、誰でもフォームを開くことができる状況のままでは困るときがあります。 ここでは、VBA内にIDとパスワードを書き込み、パスワード画面をとおして目的のフォームを開く技を紹介します。

IDとパスワードでユーザーを識別する

  1. ID、パスワード入力フォームを(frm_pass)作成します。
  2. テキストボックスを2個(txtNamePass、txtCountPass)作成します。
  3. txtNamePassはID入力テキストボックス、txtCountPassはパスワード入力テキストボックスとして使用します。
  4. txtCountPassテキストボックスの更新後処理イベントプロシージャを作成し、ユーザーの入力値との照合を行い一致すれば目的のフォーム(frm_sample)を開きます。

IDとパスワード入力の作成

  1. 非連結のID、パスワード入力フォーム(frm_pass)を作成します。
  2. テキストボックスを2個(txtNamePass、txtCountPass)作成します。

  1. 各プロパティダイアログを開き、IME入力モードを"オフ"にします。
  2. txtCountPassテキストボックスの定型入力モードを"パスワード"に設定します。

今回のおすすめポイント

IME入力モード

IDとパスワードは、半角英数字に限定された方が何かと管理がし易いです。 しかし、このようにするとIMEモードをオフにしないと正しくパスワード照合ができなくなる場合が多いので、"オフ"に設定します。

定型入力モード

テキストボックスに入力したデータをそのまま表示させるのはセキュリティの面で問題があります。 このような場合は、定型入力モードで"パスワード"を選択すると、全て****で表示されます。

txtCountPassテキストボックスの更新後処理イベントプロシージャの作成

txtCountPassテキストボックスの更新後処理イベントプロシージャを作成します。

Private Sub txtCountPass_AfterUpdate()

    Dim TextBoxA As TextBox
    Dim TextBoxB As TextBox
    
    Set TextBoxA = Me.txtNamePass ' --- A
    Set TextBoxB = Me.txtCountPass

    Const NamePass = "suzuki" ' --- B
    Const CountPass = "1234"
    
    If TextBoxA = NamePass Then ' --- C
        If TextBoxB = CountPass Then ' --- D
            DoCmd.OpenForm "frm_sample" ' --- E
            DoCmd.Close , "frm_pass"
        Else
            MsgBox "パスワードが異なります。", vbOKOnly + vbCritical
        End If
    Else
        MsgBox "IDが異なります。", vbOKOnly + vbCritical
    End If

End Sub
解説
  1. Setステートメントで変数にオブジェクトを代入します。
  2. ConstステートメントでID、パスワードの値を設定します。
  3. IFステートメントでIDのチェックを行います。
  4. IFステートメントでパスワードのチェックを行います。
  5. IDとパスワードが合致すれば、frm_sampleフォームを開きます。

動作確認

  1. デザインビューからフォームビューに切り替えます。
  2. IDとパスワードを、それぞれsuzuki、1234と入力しEnterキーを押します。

  1. 「社員別出身都道府県リストフォーム」が開き、「ID、パスワード入力」フォームが閉じます。

今回のおすすめポイント

プロシージャ内にパスワードを記述する

パスワード制限を行う場合、パスワードの保存場所が一番問題になります。露営する可能性の低い場所としては、プロシージャ内が最も優れています。何故なら、MDEファイルに変換するとプロシージャエリアにアクセスできなくなるからです。 しかし、プロシージャ内に記述するとパスワード変更が事実上できなくなります。

パスワードの保管場所

パスワードを保管する場所としては、テーブルフィールドにパスワードを保管する方法があります。パスワードの照合には、DlookUpステートメントを用います。

関連ページ

ページの先頭へ 前ページへ戻る

 


IDとパスワードを用いてフォームを開く : Access裏技Tips


 

-Microsoft Access Club-

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。