機密情報を含むデータベースには、ログインフォームが必須です。 以下の手順に従って、データベースを無効なアクセスから保護するための独自のログインフォームを作成できます。
ダウンロード
この機能の利用をできるだけ早く開始したい場合は、以下の方法があります。
今すぐVBAコードを含むサンプルデータベースをダウンロードする
それ以外の場合、DIYをしたい場合は、以下の内容を読むことができます。
Accessでログインフォームを作成する手順
1.ログインテーブルを作成します
最初に行う必要があるのは、すべてのログイン情報を格納するテーブルを作成することです。
- 新しいテーブルを作成し、名前を付けます tbl_login.
- デザインビューでテーブルを開きます。
- 次のフィールドとそれに対応するデータ型を追加します。
| フィールド名 | Data Type |
| ユーザーID | オートナンバー |
| ファーストネーム | ショートテキスト |
| 苗字 | ショートテキスト |
| ユーザー名 | ショートテキスト |
| パスワード | ショートテキスト |
- パスワードの入力マスクを編集して、一連のアスタリスク(*)として表示されるようにします。
- [パスワード]フィールドを選択します。
- [全般]タブ> [入力マスク]>…に移動します
- 入力マスクウィザードが表示されたら、[パスワード]を選択します。
- 完了をクリックします。
- データシートビューでテーブルを開き、最初のレコード(ログインの詳細)を入力します。
- テーブルを閉じて、行った変更を保存します。
2.ログインフォームを作成します
2つのテキストボックスと2つのコマンドボタンを使用して空白のフォームを作成します(以下を参照)。 コマンドボタンウィザードをスキップします。
これらのフォームコントロールは後でコードで参照するので、簡単に識別できるように名前を変更することをお勧めします。
- txt_ユーザー名
- txt_パスワード
- cmd_ログイン
- cmd_キャンセル
次に、パスワードテキストボックスの入力マスクを変更して、一連のアスタリスク(*)としても表示されるようにします。
- デザインビューで、パスワードテキストボックスを選択します。
- プロパティシートを開きます(ALT + Enter)。
- [データ]タブ> [入力マスク]に移動します。
- [パスワード]を選択し、[完了]をクリックします。
さて、これからフォームのいくつかのプロパティを変更します。これは見た目を良くするためだけでなく、最も重要な点として、ユーザーが正しいログイン情報を入力せずにこのフォームをスキップできないようにするためです。
- デザインビューで、フォームを選択します(以下を参照)。
- プロパティシートを開き(ALT + Enter)、次のプロパティを更新します。
- 下 フォーマット タブ
- キャプション:ログイン
- レコードセレクター:いいえ
- ナビゲーションボタン:いいえ
- スクロールバー:どちらでもない
- ボーダースタイル:ダイアログ
- 閉じるボタン:いいえ
- 下 その他 タブ
- ポップアップ:はい
- モーダル:はい
- ショートカットメニュー:いいえ
- フォームを名前を付けて保存 frm_login.
3.コードを追加します
ログインボタンにクリック時イベントを追加します。
- デザインビューで、[ログイン]ボタンを選択します。
- プロパティシート> [イベント]タブ>クリック時>…に移動します
- 選択 コードビルダー [ビルダーの選択]メニューから[OK]をクリックします。
- これにより、VBAエディターが開きます。
- 以下のコードをコピーします。
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
このコードは次のようになります。
- ユーザー名とパスワードのフィールドが空白のままになっていないかどうかを確認します。 そうである場合は、プロンプトが表示されます。
- ログインテーブル(tbl_login)の値と比較して、ログインの詳細が正しいかどうかを確認します。
- ログインの詳細が確認されると、ユーザーを歓迎するプロンプトが表示されます。
次のステップは、[キャンセル]ボタンのコードを追加して、クリックするとデータベースが閉じるようにすることです。
- [キャンセル]ボタンにクリック時イベントを追加します([ログイン]ボタンと同じ手順)。
- 以下のコードをコピーします。
Private Sub cmd_cancel_Click() DoCmd.Quit acQuitSaveAll End Sub
4.ログインフォームを表示フォームとして設定します
最後に、ログインフォームを、ユーザーがデータベースを開いたときに表示されるデフォルトのフォームとして設定します。
- [ファイル]> [オプション]> [現在のデータベース]に移動します。
- 表示フォームをfrm_loginに設定します。
- [OK]をクリックします。
データベースがどのように機能するかを確認するには、データベースを閉じてから再度開く必要があります。
アクセスデータベースを回復する
おめでとう! これで、貴重なデータベースを無効なアクセスから保護する方法がわかりました。 さて、私はあなたに追加のヒントを与えるつもりです。 不幸な理由でデータベースが破損している場合でも、慌てないでください。 DataNumen データ復旧技術の専門家であるInc.は、修復するソフトウェアを提供しています 破損したアクセス データベース。 データベースは引き続き回復できます。
著者紹介:
Jayme Stackは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 SQLの回復 と優れた回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com



