Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3курс 2сем / курсач / KR_Ianysheva_4716.docx
Скачиваний:
29
Добавлен:
16.04.2021
Размер:
6.09 Mб
Скачать
  1. Графический вход

Был создан графический вход для сотрудников школы, с таблицами, к которым у них есть доступ. Для начала нужно ввести логин и пароль (рисунок 14-15), после успешной авторизации нужно ввести графический ключ (рисунок 16), после чего будут доступны определенные функции (рисунок 17).

Рисунок 14 – Ввод логина пользователя

Рисунок 15 – Ввод пароля

Рисунок 16 – Открыта форма после успешной авторизации, функции не доступны

Рисунок 17 – При успешном вводе графического пароля функции доступны

При неправильном вводе графического ключа появляется окно с ошибкой (рисунок 18).

Рисунок 18 – Ошибка входа

Листинг авторизации:

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

Листинг графического ключа

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

Соседние файлы в папке курсач