Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДР_М (2).docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
9 Мб
Скачать
☆
    1. Пароли_операторов_f

Public Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

SetLanguage Shift

End Sub

Private Sub BUT_OK_Click()

Dim i As Integer, q() As String, str_tmp As String

On Error GoTo ErrHandler

If IsNull(Me![NEW_PASS]) Or IsNull(Me![DUBL_PASS]) Then

MsgBox "Введите в оба поля (""Новый пароль"" и" & vbNewLine & _

"""Подтверждение пароля"") пароль для" & vbNewLine & _

"указанного оператора.", vbCritical, Me.Caption

Exit Sub

End If

If Len(Me![NEW_PASS]) <> Len(Me![DUBL_PASS]) Then

MsgBox "Введенные пароли не совпадают." & vbNewLine & _

"Введите в оба поля (""Новый пароль"" и" & vbNewLine & _

"""Подтверждение пароля"") пароль для" & vbNewLine & _

"указанного оператора.", vbCritical, Me.Caption

Exit Sub

End If

For i = 1 To Len(Me![NEW_PASS])

If (Asc(Mid(Me![NEW_PASS], i, 1)) <> Asc(Mid(Me![DUBL_PASS], i, 1))) Then

MsgBox "Введенные пароли не совпадают." & vbNewLine & _

"Введите в оба поля (""Новый пароль"" и" & vbNewLine & _

"""Подтверждение пароля"") пароль для" & vbNewLine & _

"указанного оператора.", vbCritical, Me.Caption

Exit Sub

End If

Next i

If InStr(1, Me![NEW_PASS], "*") <> 0 Then

MsgBox "Новый пароль содержит недопустимый символ ""*"". Введите другой пароль", vbCritical, Me.Caption

Me![NEW_PASS].SetFocus

Exit Sub

End If

If (Len(Me![NEW_PASS]) < PASS_LENGTH) Or (Len(Me![NEW_PASS]) > 10) Then

MsgBox "Длина пароля должна быть между " & PASS_LENGTH & " и 10 символов. Повторите ввод пароля", vbCritical, Me.Caption

Me![NEW_PASS].SetFocus

Exit Sub

End If

str_tmp = ""

For i = 1 To Len(Me![NEW_PASS]): str_tmp = str_tmp & Asc(Mid(NEW_PASS, i, 1)) & "*": Next i

If Not IsNull(DLookup("ID_FIZICHESK_FACE", "Объект физическое лицо", _

"ID_FIZICHESK_FACE = " & Me![OPERATOR] & " AND " & _

"MAGIC_WORD = " & Quoted(str_tmp))) Then

MsgBox "Новый пароль не должен совпадать со старым паролем. Повторите ввод пароля", vbCritical, Me.Caption

Me![NEW_PASS].SetFocus

Exit Sub

End If

i = 1: ReDim Preserve q(1 To i)

q(i) = "UPDATE [Объект физическое лицо] SET MAGIC_WORD = " & Quoted(str_tmp) & " WHERE ID_FIZICHESK_FACE = " & Nz(Me![OPERATOR], "Null")

i = i + 1: ReDim Preserve q(1 To i)

q(i) = "INSERT INTO [Объект физлицо время пароля] (KOD_FL)" & vbNewLine

q(i) = q(i) & "SELECT О.ID_FIZICHESK_FACE" & vbNewLine

q(i) = q(i) & "FROM [Объект физическое лицо] AS О LEFT JOIN" & vbNewLine

q(i) = q(i) & "[Объект физлицо время пароля] AS В ON О.ID_FIZICHESK_FACE = В.KOD_FL" & vbNewLine

q(i) = q(i) & "WHERE О.ID_FIZICHESK_FACE = " & Me![OPERATOR] & " AND В.KOD_FL Is Null"

i = i + 1: ReDim Preserve q(1 To i)

q(i) = "UPDATE [Объект физлицо время пароля] SET DATE_TIME = now() WHERE KOD_FL = " & Me![OPERATOR]

If Not ExecuteTrans("сохранение пароля", q) Then Exit Sub

MsgBox "Пароль изменен.", , Me.Caption

CloseObject acForm, Me.NAME

Exit Sub

ErrHandler:

Select Case Err.NUMBER

Case Else: ErrHandlerProc Me.Caption, ButPressed(Me![BUT_OK]): Exit Sub

Resume

End Select

End Sub

Private Sub BUT_EXIT_Click()

CloseObject acForm, Me.NAME

End Sub

Private Sub Form_Open(Cancel As Integer)

Me![TITLE].Caption = "Длина пароля должна быть" & vbNewLine & "от " & PASS_LENGTH & " до 10 символов"

Me![OPERATOR] = Me.OpenArgs

End Sub