Alterando a senha de um Banco de dados Access


"A partir da versão 3.0 do Jet Engine ( Access 95 ) , ao usar uma base de dados Access, podemos utilizar o recurso de atribuir uma senha ao banco de dados. A senha pode ser atribuída usando o Microsoft Access ou via código no seu projeto. Esta atribuição pode ser feita por qualquer usuário com direitos de administrador do sistema. "

O texto acima foi extraído do artigo - Esqueceu a senha do banco de dados... . Nosso objetivo aqui será mostrar como alterar esta senha atribuída. Então mão na massa...

Public Function MudaSenha(Caminho As String, _
NovaSenha As String, SenhaAntiga As String) As Boolean

On Error GoTo mudasenha_erro

If Dir(Caminho) = "" Then Exit Function

Dim db As DAO.Database

On Error Resume Next
Set db = OpenDatabase(Caminho, True, False, ";pwd=" & SenhaAntiga)

If Err.Number <> 0 Then
   If Err.Number = 3031 Then
      MsgBox " A senha anterior não confere ! ", vbCritical, "Muda Senha"
   Else
      MsgBox Err.Number & " - " & Err.Description
   End If
   Text1.Text = ""
   Text2.Text = ""
   Text3.Text = ""
   Text1.SetFocus
   Exit Function
End If

db.NewPassword SenhaAntiga, NovaSenha
ChangeDatabasePassword = Err.Number = 0

db.Close
Exit Function

mudasenha_erro:
MsgBox Err.Description, vbCritical
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
db.Close
End Function

A função MudaSenha deverá receber três parâmetros: 

  1. A localização do banco de dados - Caminho
  2. A Senha a ser implementada - NovaSenha
  3. A Senha anteriormente utilizada - SenhaAntiga

Se houver um erro durante a tentativa de abrir o arquivo com a senha anterior fornecida o sistema irá avisar o usuário para digitar novamente a senha antiga. Se o banco de dados for aberto usamos o método  NewPassword  para alterar a senha da base de dados:

db.NewPassword SenhaAntiga, NovaSenha

Private Sub Command1_Click()
    MudaSenha "c:\loca\loca.mdb", Text2.Text, Text1.Text
    If Err.Number = 0 Then
       MsgBox " Senha alterada com sucesso ! ", vbInformation
    End If
End Sub

Aqui fazemos a chamada da função passando os parâmetros.

Private Sub Text3_Validate(Cancel As Boolean)
  If Text3.Text <> Text2.Text Then
    MsgBox " A nova senha não confere , favor redigite a senha ! ", vbCritical, "Muda Senha"
    Cancel = True
End If
End Sub

Sem mais nada a declarar, Tchau.. 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti