Accessのログインフォームで機密データを保護する方法

今すぐ共有:

機密情報を含むデータベースには、ログインフォームが必須です。 以下の手順に従って、データベースを無効なアクセスから保護するための独自のログインフォームを作成できます。

ダウンロード

この機能の利用をできるだけ早く開始したい場合は、以下の方法があります。

今すぐVBAコードを含むサンプルデータベースをダウンロードする

それ以外の場合、DIYをしたい場合は、以下の内容を読むことができます。

Accessでログインフォームを作成する手順

1.ログインテーブルを作成します

最初に行う必要があるのは、すべてのログイン情報を格納するテーブルを作成することです。

  1. 新しいテーブルを作成し、名前を付けます tbl_login.
  2. デザインビューでテーブルを開きます。
  3. 次のフィールドとそれに対応するデータ型を追加します。
フィールド名 Data Type
ユーザーID オートナンバー
ファーストネーム ショートテキスト
苗字 ショートテキスト
ユーザー名 ショートテキスト
パスワード ショートテキスト

 

  1. パスワードの入力マスクを編集して、一連のアスタリスク(*)として表示されるようにします。パスワードの入力マスクを編集する
  • [パスワード]フィールドを選択します。
  • [全般]タブ> [入力マスク]>…に移動します
  • 入力マスクウィザードが表示されたら、[パスワード]を選択します。
  • 完了をクリックします。
  1. データシートビューでテーブルを開き、最初のレコード(ログインの詳細)を入力します。ログインの詳細を入力してください
  2. テーブルを閉じて、行った変更を保存します。

2.ログインフォームを作成します

2つのテキストボックスと2つのコマンドボタンを使用して空白のフォームを作成します(以下を参照)。 コマンドボタンウィザードをスキップします。ログインフォームを作成する

これらのフォームコントロールは後でコードで参照するので、簡単に識別できるように名前を変更することをお勧めします。

  • txt_ユーザー名
  • txt_パスワード
  • cmd_ログイン
  • cmd_キャンセル

次に、パスワードテキストボックスの入力マスクを変更して、一連のアスタリスク(*)としても表示されるようにします。

  1. デザインビューで、パスワードテキストボックスを選択します。
  2. プロパティシートを開きます(ALT + Enter)。
  3. [データ]タブ> [入力マスク]に移動します。
  4. [パスワード]を選択し、[完了]をクリックします。

さて、これからフォームのいくつかのプロパティを変更します。これは見た目を良くするためだけでなく、最も重要な点として、ユーザーが正しいログイン情報を入力せずにこのフォームをスキップできないようにするためです。

  1. デザインビューで、フォームを選択します(以下を参照)。フォームを選択します
  2. プロパティシートを開き(ALT + Enter)、次のプロパティを更新します。
  • フォーマット タブ
    • キャプション:ログイン
    • レコードセレクター:いいえ
    • ナビゲーションボタン:いいえ
    • スクロールバー:どちらでもない
    • ボーダースタイル:ダイアログ
    • 閉じるボタン:いいえ
  • その他 タブ
    • ポップアップ:はい
    • モーダル:はい
    • ショートカットメニュー:いいえ
  1. フォームを名前を付けて保存 frm_login.

3.コードを追加します

ログインボタンにクリック時イベントを追加します。

  1. デザインビューで、[ログイン]ボタンを選択します。
  2. プロパティシート> [イベント]タブ>クリック時>…に移動します
  3. 選択 コードビルダー [ビルダーの選択]メニューから[OK]をクリックします。
  4. これにより、VBAエディターが開きます。
  5. 以下のコードをコピーします。
Private Sub cmd_login_Click()

  Dim db As DAO.Database
  Dim rst As DAO.Recordset
  Dim strSQL As String
 
  If Trim(Me.txt_username.Value & vbNullString) = vbNullString Then
    MsgBox prompt:="Username should not be left blank.", buttons:=vbInformation, title:="Username Required"
    Me.txt_username.SetFocus
    Exit Sub
  End If
 
  If Trim(Me.txt_password.Value & vbNullString) = vbNullString Then
    MsgBox prompt:="Password should not be left blank.", buttons:=vbInformation, title:="Password Required"
    Me.txt_password.SetFocus
    Exit Sub
  End If
 
  'query to check if login details are correct
  strSQL = "SELECT FirstName FROM tbl_login WHERE Username = """ & Me.txt_username.Value & """ AND Password = """ & Me.txt_password.Value & """"
 
  Set db = CurrentDb
  Set rst = db.OpenRecordset(strSQL)
  If rst.EOF Then
    MsgBox prompt:="Incorrect username/password. Try again.", buttons:=vbCritical, title:="Login Error"
    Me.txt_username.SetFocus
  Else
    MsgBox prompt:="Hello, " & rst.Fields(0).Value & ".", buttons:=vbOKOnly, title:="Login Successful"
    DoCmd.Close acForm, "frm_login", acSaveYes
  End If
 
 Set db = Nothing
 Set rst = Nothing

End Sub

このコードは次のようになります。

  1. ユーザー名とパスワードのフィールドが空白のままになっていないかどうかを確認します。 そうである場合は、プロンプトが表示されます。
  2. ログインテーブル(tbl_login)の値と比較して、ログインの詳細が正しいかどうかを確認します。
  3. ログインの詳細が確認されると、ユーザーを歓迎するプロンプトが表示されます。

次のステップは、[キャンセル]ボタンのコードを追加して、クリックするとデータベースが閉じるようにすることです。

  1. [キャンセル]ボタンにクリック時イベントを追加します([ログイン]ボタンと同じ手順)。
  2. 以下のコードをコピーします。
Private Sub cmd_cancel_Click()
   DoCmd.Quit acQuitSaveAll
End Sub

4.ログインフォームを表示フォームとして設定します

最後に、ログインフォームを、ユーザーがデータベースを開いたときに表示されるデフォルトのフォームとして設定します。

  1. [ファイル]> [オプション]> [現在のデータベース]に移動します。
  2. 表示フォームをfrm_loginに設定します。
  3. [OK]をクリックします。

データベースがどのように機能するかを確認するには、データベースを閉じてから再度開く必要があります。

アクセスデータベースを回復する

おめでとう! これで、貴重なデータベースを無効なアクセスから保護する方法がわかりました。 さて、私はあなたに追加のヒントを与えるつもりです。 不幸な理由でデータベースが破損している場合でも、慌てないでください。 DataNumen データ復旧技術の専門家であるInc.は、修復するソフトウェアを提供しています 破損したアクセス データベース。 データベースは引き続き回復できます。

著者紹介:

Jayme Stackは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQLの回復 と優れた回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。