3курс 1сем / 5
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ
ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
Е.Л.Турнецкая |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №5 |
Использование VBA для настройки пользовательского интерфейса. Разработка графического пароля |
по курсу: БАЗЫ ДАННЫХ |
|
|
РАБОТУ ВЫПОЛНИЛА
СТУДЕНТКА ГР. |
4716 |
|
|
|
С.А. Янышева |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург
2019
Лабораторная работа № 5
Использование VBA для настройки пользовательского интерфейса. Разработка графического пароля
Цель работы
Настроить пользовательский интерфейс при помощи модулей VBA. Освоить технологию создания графического пароля для аутентификации пользователя в среде MS Access.
Вариант задания
Вариант: 5 Школа.
В школе учатся дети с 1 по 11 классы. При поступлении (переводе) ребёнка в школу необходимы следующие сведения: его Ф.И.О., дата рождения, адрес прописки, дата поступления в школу, сведения о родителях, номер контактного телефона. Ребёнок определяется в конкретный класс (номер, буква). В каждом классе так же есть классный руководитель. Каждый учитель ведёт один предмет в разных классах. Об учителе должно быть известна следующая информация: паспортные данные, начальная дата работы учителем, дата поступления в школу.
Выполнение работы
Была интегрирована макрос и форму, разработанные в предыдущей работе, в новую форму с графическим ключом, при помощи средств VBA. Успешное тестирование продемонстрировано на рисунках 1-4. Листинг программного кода:
Form_5)Авторизация
Option Compare Database Option Explicit
Private gp As String Private pw As String Private C As Integer Private cc As Integer Private i As Integer
Private Sub Form_Open(Cancel As Integer) gp = "" C = 1 cc = 0 DoCmd.SetProperty "Кнопка10", acPropertyEnabled, "0" DoCmd.SetProperty "Кнопка11", acPropertyEnabled, "0" DoCmd.SetProperty "Кнопка12", acPropertyEnabled, "0"
On Error Resume Next DoCmd.Close acForm, "Users" TempVars.Add "name", InputBox("Введите имя пользователя", "Авторизация") TempVars.Add "password", InputBox("Введите пароль", "Авторизация") DoCmd.OpenForm "Users", acNormal, "", "[Имя пользователя]=[TempVars]![name] And [Пароль]=[TempVars]![password]", acReadOnly, acHidden If (Forms![Users]![Имя пользователя] <> TempVars!Name And Forms![Users]!Пароль <> TempVars!Password) Then MsgBox "Имя пользователя или пароль введены не верно", vbOKOnly, "Ошибка" DoCmd.Close acForm, "Users" DoCmd.Close acForm, "5)Авторизация" End If TempVars.RemoveAll
End Sub
Private Sub Click(b As String) pw = "4268" cc = cc + 1 gp = gp + b If (cc = 4) Then If (gp = pw) Then For i = 1 To 9 DoCmd.SetProperty "Кнопка" & CStr(i), acPropertyEnabled, "0" Next If (Forms![Users]!Удаление) Then DoCmd.SetProperty "Кнопка10", acPropertyEnabled, "1" DoCmd.SetProperty "Кнопка11", acPropertyEnabled, "1" DoCmd.SetProperty "Кнопка12", acPropertyEnabled, "1" ElseIf (Forms![Users]![Добавление и изменение]) Then DoCmd.SetProperty "Кнопка11", acPropertyEnabled, "1" DoCmd.SetProperty "Кнопка12", acPropertyEnabled, "1" ElseIf (Forms![Users]!Просмотр) Then DoCmd.SetProperty "Кнопка12", acPropertyEnabled, "1" Else DoCmd.Close acForm, "Выбрать действие" MsgBox "Ошибка права доступа", vbExclamation, "Ошибка" End If DoCmd.Close acForm, "Users" Else C = C + 1 gp = "" cc = 0 If (C > 3) Then MsgBox "Ключ неверный", vbOKOnly, "Ошибка" DoCmd.Close acForm, "5)Авторизация" Else MsgBox "Ключ неверный. Ппытка " & CStr(C) & " из 3.", vbOKOnly, "Ошибка" End If End If End If End Sub
Private Sub Кнопка1_Click() Click ("1") End Sub Private Sub Кнопка2_Click() Click ("2") End Sub Private Sub Кнопка3_Click() Click ("3") End Sub Private Sub Кнопка4_Click() Click ("4") End Sub Private Sub Кнопка5_Click() Click ("5") End Sub Private Sub Кнопка6_Click() Click ("6") End Sub Private Sub Кнопка7_Click() Click ("7") End Sub Private Sub Кнопка8_Click() Click ("8") End Sub Private Sub Кнопка9_Click() Click ("9") End Sub
Private Sub Кнопка10_Click() DoCmd.OpenForm "Полноправное редактирование", acNormal, "", "", , acNormal End Sub Private Sub Кнопка11_Click() DoCmd.OpenForm "Просмотр и редактирование таблиц", acNormal, "", "", , acNormal End Sub Private Sub Кнопка12_Click() DoCmd.OpenForm "Просмотр таблиц", acNormal, "", "", , acNormal End Sub |
Form_5)Графический ключ
Option Compare Database Option Explicit
Private gp As String Private pw As String Private C As Integer Private cc As Integer
Private Sub Form_Open(Cancel As Integer) gp = "" C = 1 cc = 0 End Sub
Private Sub Click(b As String) pw = "4268" cc = cc + 1 gp = gp + b If (cc = 4) Then If (gp = pw) Then DoCmd.Close acForm, "5)Графический ключ" Else C = C + 1 gp = "" cc = 0 If (C > 3) Then MsgBox "Ключ неверный", vbOKOnly, "Ошибка" DoCmd.Close acForm, "5)Графический ключ" Else MsgBox "Ключ неверный. Ппытка " & CStr(C) & " из 3.", vbOKOnly, "Ошибка" End If End If End If End Sub
Private Sub Кнопка0_Click() Click ("1") End Sub Private Sub Кнопка1_Click() Click ("2") End Sub Private Sub Кнопка2_Click() Click ("3") End Sub Private Sub Кнопка3_Click() Click ("4") End Sub Private Sub Кнопка4_Click() Click ("5") End Sub Private Sub Кнопка5_Click() Click ("6") End Sub Private Sub Кнопка6_Click() Click ("7") End Sub Private Sub Кнопка7_Click() Click ("8") End Sub Private Sub Кнопка8_Click() Click ("9") End Sub |
Рисунок 1 – Ввод логина пользователя
Рисунок 2 – Ввод пароля
Рисунок 3 – Открыта форма после успешной авторизации, функции не доступны
Рисунок 4 – При успешном вводе графического пароля функции доступны
Выводы
Был настроен пользовательский интерфейс при помощи модулей VBA. Освоены технологии создания графического пароля для аутентификации пользователя в среде MS Access.
Список используемых источников
Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.
Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.
Чарльз Е. Браун, Рон Петруша. Access VBA. Программирование в примерах. Москва: Кудиц-Образ, 2006. 432с.
Голицына О.Л, Попов И.И, Партыка Т.Л. Основы проектирования баз данных: учебное пособие. М.: ФОРУМ, 2014. 415 с.
Гандерлой М., Харкинз, Храмов С.А. Автоматизация Microsoft Access с помощью VBA. М.: Вильямс, 2006. 416 с.
Слепцова Л.Д. Программирование на VBA в Microsoft Office 2010. М.: Вильямс, 2010. 432 с.