Как защитить свои конфиденциальные данные с помощью формы входа в Access

Поделись сейчас:

Форма входа обязательна для баз данных, содержащих конфиденциальную информацию. Следуйте приведенным ниже инструкциям, чтобы создать собственную форму входа и защитить базу данных от неправомерного доступа.

Скачать сейчас

Если вы хотите сtart использовать функцию как можно скорее, то вы можете:

Загрузите пример базы данных с кодами VBA прямо сейчас

В противном случае, если вы хотите сделать своими руками, вы можете прочитать содержимое ниже.

Шаги по созданию формы входа в Access

1. Создайте таблицу входа

Первое, что нам нужно сделать, это создать таблицу, в которой будет храниться вся информация для входа.

  1. Создайте новую таблицу и назовите ее как tbl_login.
  2. Откройте таблицу в режиме конструктора.
  3. Добавьте следующие поля с соответствующими типами данных:
Имя поля Тип данных
Идентификатор пользователя Автонумерация
Имя Короткий текст
Фамилия Короткий текст
UserName Короткий текст
Пароль Короткий текст

 

  1. Отредактируйте маску ввода пароля, чтобы он отображался в виде набора звездочек (*).Изменить маску ввода пароля
  • Выберите поле Пароль.
  • Перейдите на вкладку «Общие» > «Маска ввода» >…
  • Когда появится мастер маски ввода, выберите «Пароль».
  • Нажмите «Готово».
  1. Откройте таблицу в режиме просмотра данных и введите первую запись (ваши данные для входа).Введите данные для входа
  2. Закройте таблицу и сохраните внесенные изменения.

2. Создайте форму входа

Создайте пустую форму с двумя текстовыми полями и двумя командными кнопками (как показано ниже). Пропустите мастер командной кнопки.Создайте форму входа

Мы собираемся ссылаться на эти элементы управления формой в нашем коде позже, поэтому было бы лучше переименовать их, чтобы их можно было легко идентифицировать:

  • txt_имя_пользователя
  • txt_password
  • cmd_login
  • cmd_cancel

Затем измените маску ввода текстового поля пароля, чтобы оно также отображалось в виде набора звездочек (*).

  1. В режиме конструктора выберите текстовое поле пароля.
  2. Откройте лист свойств (ALT + Enter).
  3. Перейдите на вкладку «Данные» > «Маска ввода».
  4. Выберите «Пароль» и нажмите «Готово».

Теперь мы собираемся изменить некоторые свойства формы для эстетических целей и most важно, чтобы пользователи не могли обойти эту форму, не введя правильные данные для входа.

  1. В режиме конструктора выберите форму (как показано ниже).Выберите форму
  2. Откройте окно свойств (ALT + Enter) и обновите следующие свойства:
  • Под Формат таб
    • Надпись: Войти
    • Селекторы записей: Нет
    • Кнопки навигации: Нет
    • Полосы прокрутки: нет
    • Стиль границы: диалоговое окно
    • Кнопка закрытия: нет
  • Под Прочее таб
    • Всплывающее окно: Да
    • Модальный: Да
    • Контекстное меню: Нет
  1. Сохраните форму как frm_login.

3. Добавьте код

Добавьте событие On Click к кнопке входа.

  1. В представлении «Дизайн» нажмите кнопку «Войти».
  2. Перейдите на страницу свойств > вкладка «Событие» > «По щелчку» >…
  3. Выберите Конструктор кода в меню Choose Builder и нажмите 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. Добавьте событие On Click к кнопке Cancel (такая же процедура с кнопкой Login).
  2. Скопируйте приведенный ниже код.
Private Sub cmd_cancel_Click()
   DoCmd.Quit acQuitSaveAll
End Sub

4. Установите форму входа в качестве формы отображения

Наконец, установите форму входа в качестве формы по умолчанию, которую пользователи увидят при открытии базы данных.

  1. Выберите «Файл» > «Параметры» > «Текущая база данных».
  2. Установите для формы отображения значение frm_login.
  3. Нажмите кнопку ОК.

Вам придется закрыть базу данных и снова открыть ее, чтобы увидеть, как она работает.

Восстановите базу данных Access

Поздравляем! Теперь вы знаете, как защитить вашу драгоценную базу данных от неправомерного доступа. Теперь я дам вам дополнительный совет. Если по неблагоприятной причине ваша база данных была повреждена, НЕ паникуйте. DataNumen Inc., эксперт в области технологий восстановления данных, предоставляет программное обеспечение, которое восстанавливает поврежден доступ база данных. Ваша база данных все еще может быть восстановлена.

Об авторе:

Джейми Стэк — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая sql восстановление и программные продукты для восстановления Excel. Для получения дополнительной информации посетите www.datanumen.com

Поделись сейчас:

Комментарии закрыты.