Boas Noites!
Tenho um formulário para alterar a password dos usuários, mas não consigo que funcione.
O código é o seguinte:
Private Sub txtConfirma_AfterUpdate()
On Error Resume Next
Dim ErrorPass As Integer
ErrorPass = 0
If Len(txtConfirma) < 6 Then
ErrorPass = 1
End If
If txtConfirma <> txtNova Then
ErrorPass = 2
End If
If txtConfirma = txtAnterior Then
ErrorPass = 3
End If
If txtConfirma = txtUsuario Then
ErrorPass = 4
End If
If InStr(txtConfirma, txtUsuario) > 0 Then
ErrorPass = 5
End If
Select Case ErrorPass
Case 0
MsgBox "Nova Password actualizada com sucesso, o Sistema irá fechar para você abrir de novo.", vbQuestion, "Gestão Clínicas"
DoCmd.Close
Case 1
MsgBox "Password tem de ter no minimo 6 digitos.", vbQuestion, "Gestão Clínicas"
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 2
MsgBox "Password Invalida, Digite de novo.", vbQuestion, "Gestão Clínicas"
Me.txtNova.SetFocus
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 3
MsgBox "Nova Password é igual à anterior, Digite uma Password diferente.", vbQuestion, "Gestão Clínicas"
Me.txtNova.SetFocus
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 4
MsgBox "Password é igual ao User, Digite uma Password diferente.", vbQuestion, "Gestão Clínicas"
Me.txtNova.SetFocus
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 5
MsgBox ""
End Select
If ErrorPass > 0 Then
txtConfirma = ""
txtNova = ""
Else
txtNova.Locked = True
txtConfirma.Locked = True
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblUsuario", dbOpenDynaset)
rs.FindFirst "Usuario = " & txtUsuario
If rs.NoMatch Then
rs.AddNew
Else
rs.Edit
rs("Senha") = Me!txtNova
rs("Confirmação") = Me!txtConfirma
rs.Update
rs.Close
End If
rs("Senha") = Me!txtNova
rs("Confirmação") = Me!txtConfirma
rs.Update
rs.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub
Alguem me pode ajudar?
Tenho um formulário para alterar a password dos usuários, mas não consigo que funcione.
O código é o seguinte:
Private Sub txtConfirma_AfterUpdate()
On Error Resume Next
Dim ErrorPass As Integer
ErrorPass = 0
If Len(txtConfirma) < 6 Then
ErrorPass = 1
End If
If txtConfirma <> txtNova Then
ErrorPass = 2
End If
If txtConfirma = txtAnterior Then
ErrorPass = 3
End If
If txtConfirma = txtUsuario Then
ErrorPass = 4
End If
If InStr(txtConfirma, txtUsuario) > 0 Then
ErrorPass = 5
End If
Select Case ErrorPass
Case 0
MsgBox "Nova Password actualizada com sucesso, o Sistema irá fechar para você abrir de novo.", vbQuestion, "Gestão Clínicas"
DoCmd.Close
Case 1
MsgBox "Password tem de ter no minimo 6 digitos.", vbQuestion, "Gestão Clínicas"
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 2
MsgBox "Password Invalida, Digite de novo.", vbQuestion, "Gestão Clínicas"
Me.txtNova.SetFocus
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 3
MsgBox "Nova Password é igual à anterior, Digite uma Password diferente.", vbQuestion, "Gestão Clínicas"
Me.txtNova.SetFocus
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 4
MsgBox "Password é igual ao User, Digite uma Password diferente.", vbQuestion, "Gestão Clínicas"
Me.txtNova.SetFocus
Me.txtNova = ""
Me.txtConfirma = ""
Exit Sub
Case 5
MsgBox ""
End Select
If ErrorPass > 0 Then
txtConfirma = ""
txtNova = ""
Else
txtNova.Locked = True
txtConfirma.Locked = True
Dim db As Database, rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblUsuario", dbOpenDynaset)
rs.FindFirst "Usuario = " & txtUsuario
If rs.NoMatch Then
rs.AddNew
Else
rs.Edit
rs("Senha") = Me!txtNova
rs("Confirmação") = Me!txtConfirma
rs.Update
rs.Close
End If
rs("Senha") = Me!txtNova
rs("Confirmação") = Me!txtConfirma
rs.Update
rs.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub
Alguem me pode ajudar?