Tenha em mãos as Melhores Planilhas! Paulo

Como Fazer Login De Usuário Orientado A Objetos

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Hoje vamos mostrar como você pode criar esse login, mas dessa vez usando o banco de dados access. Também implementaremos esse login orientada a objetos. Se ficou interessado nesse assunto então continue lendo esse artigo, lembre-se de curti, compartilhar e comentar essa postagem.

Quem nunca precisou de uma tela de login para permissões de acesso que atire a primeira pedra. Se você necessita proteger algumas guias do usuário, nada melhor do que uma tela de login. Esse tipo de permissão é muito importante para qualquer sistema, principalmente quando o programa é usado por mais de uma pessoa.

Aqui no site nós já descrevemos um artigo a respeito desse tema, porém foi um exemplo bem simples, vou deixar o link aqui caso queira ler. Lá mostramos a estrutura básica para criar um login de usuário, mas não usamos intervalos da planilha e muito menos banco de dados como fonte de registros.

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

Preparando Nosso Projeto Login De Usuário

O primeiro passo que você precisa fazer é criar seu formulário, assim como da imagem a seguir. Note que também adicionamos 2 classes ClsConexao e ClsLogin, iremos usa-las para implementar nosso projeto orientado a objetos.

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Para fazer o acesso ao nosso banco de dados, lembre-se de adicionar a referência microsoft activex data objects 2.8 library. Caso não saiba fazer isso, acesse esse link aqui onde mostro como habilitar essa referência no excel!

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

para esse exemplo nós criamos um banco de dados chamado Database, Lembre de salva-lo

na extensâo mbd.

 

 

Para esse exemplo nós criamos um banco de dados chamado DataBase, lembre de salvá-lo na extensão mdb. Se você não sabe como realizar essa tarefa, acesse esse link aqui onde mostramos como fazer isso. Nesse banco de dados criamos uma tabela com o nome de TB_Usuario_Login, essa tabela vai conter os seguintes campos:

Pronto agora que já preparamos os primeiros passos de nosso projeto, podemos começar a coda rs…

Login De Usuário Orientado A Objetos + DataBase Access

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

Vamos começar pela conexão com o banco de dados, dentro da nossa classe ClsConexão cole o código a seguir:

Private Type ClassType
     Con     As ADODB.Connection
     Rs      As ADODB.Recordset
     Path    As String
End Type

Private This As ClassType

Private Sub Class_Initialize()
    Set This.Con = New ADODB.Connection: Set This.Rs = New ADODB.Recordset
End Sub

Private Sub Class_Terminate()
    Set This.Con = Nothing: Set This.Rs = Nothing
End Sub

Public Sub OpenCon()
    This.Path = ThisWorkbook.Path & "/DataBase.mdb"
    This.Con.Open "Provider=Microsoft.jet.oledb.4.0;Data Source =" & This.Path
End Sub
Public Sub CloseCon()
    Set This.Con = Nothing
End Sub

Public Property Get Con() As ADODB.Connection
    Set Con = This.Con
End Property
Public Property Let Con(Value As ADODB.Connection)
    This.Con = Value
End Property

Public Property Get Rs() As ADODB.Recordset
    Set Rs = This.Rs
End Property
Public Property Let Rs(Value As ADODB.Recordset)
    This.Rs = Value
End Property

Agora vamos fazer a implementação da nossa classe ClsLogin, cole o código a baixo na classe:

Private Type ClassType
    Usuario     As String
    Senha       As String
End Type

Private This    As ClassType
Private DB      As ClsConexao

Public Sub Usuario_Entrar()
    If This.Usuario = "" Then
            MsgBox "Informa o nome de usuário!", vbExclamation, "INFORME"
        Exit Sub
    End If
    
    If This.Senha = "" Then
            MsgBox "Informa a senha de usuário!", vbExclamation, "INFORME"
        Exit Sub
    End If

    Set DB = New ClsConexao
        With DB
            .OpenCon
                .Rs.Open ("Select * From TB_Usuario_Login Where Usuario_Login Like '" & This.Usuario _
                          & "'" & " AND Usuario_Senha Like'" & This.Senha & "'"), .Con, 3, 3
                If .Rs.BOF And .Rs.EOF = True Then
                    MsgBox "Usuário ou senha incorretos!", vbExclamation, "VERIFIQUE"
                Else
                    MsgBox "Seja bem vindo!", vbInformation, "LOGIN"
                End If
            .CloseCon
        End With
    Set DB = Nothing
End Sub

Public Property Get Usuario() As String
    Usuario = This.Usuario
End Property
Public Property Let Usuario(Value As String)
    This.Usuario = Value
End Property

Public Property Get Senha() As String
    Senha = This.Senha
End Property
Public Property Let Senha(Value As String)
    This.Senha = Value
End Property

Agora vá até seu formulário de login e no botão Entrar, em seu evento clique cole o seguinte código:

Private Login As ClsLogin

Private Sub BtEntrar_Click()
    Set Login = New ClsLogin
        With Login
            .Usuario = Me.TxtUsuario.Text
            .Senha = Me.TxtSenha.Text
            .Usuario_Entrar
        End With
    Set Login = Nothing
End Sub

Para o projeto não ficar muito extenso nós não implementamos todos os métodos de um usuário. Portanto, para você poder testar esse exemplo você deve incluir os registros no banco de dados manualmente.

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Agora veja o resultado do nosso sistema:

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

Estrutura Da Classe ClsConexão

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

Nós construímos as estruturas da nossa classe ClsConexao que possui 3 atributos: Con, Rs, Path. Note que nesse modelo nós aplicamos o Type assim como citado em nosso artigo 

módulos de classe no vba.

Dentro desse type foi adicionado todos os atributos da classe, e somente ele receberá o modificador de acesso Private.

Na programação orientada objetos sabemos que o This representa o próprio objeto, então criamos uma variável e a referenciamos ao nosso Type. Agora todos os atributos da classe serão acessados pelo This, esse é um padrão muito comum do POO.

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Nessa classe nós temos 4 métodos e dois deles são construtores da própria classe. Esses construtores são métodos implementados por uma interface interna do vba e eles são chamados automaticamente sempre que a classe é instanciada ou destruída.

  • Class_Initialize()
  • Class_Terminate()

Através desses métodos nós instanciamos o objeto ADODB, que são representados pelas propriedades Con e Rs. Essas propriedades serão instanciadas e destruídas por meio desses métodos. Muitos programadores costumam realizar essa implementação no topo do código, mas essa não é uma boa prática no VBA.

Por isso prefiro instanciar o objeto quado a classe realmente for inicializada.

Os outros métodos foram criamos por nós, o trabalho deles é chamar a função open e close do objeto Connection. Por fim temos os métodos assessores que foram implementados na classe, para que outras partes do sistema tenham acesso aos atributos da conexão.

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Todos os atributos da classe são privados por isso temos a necessidade desses métodos. Então note que o atributo Path não implementa os métodos assessores pois nesse caso não precisamos usa-lo de fora da classe. O atributo Path representa o caminho do banco de dados, ele será referenciado no método OpenCon da classe.

É muito importante que você tenha essa noção, para não descrever métodos desnecessários, essa é aquela velha regra do bom senso rs.

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

Estrutura Da Classe ClsLogin

O desenho dessa classe segue o mesmo modelo da classe ClsConexão, mudando somente as propriedades e métodos implementados. Observe que temos dois atributos Usuário e Login que são definidos dentro do type, e o atributo DB ficando fora do type. Não sei se você percebeu mas a propriedade DB representa o objeto de conexão da classe ClsConexão, por isso não foi definida dentro do type.

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Também criamos um método publico para classe, e ele foi chamado de Usuario_Entrar. Esse método será acionado pelo sistema, sempre que uma pessoa solicitar o acesso. Dentro desse método nós descrevemos todas as regras do login, através dele que faremos todas as validações e retorno da solicitação do usuário.

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Assim como na classe ClsConexão também temos que implementar os métodos assessores, pois os atributos da classe também são privados e não possuem acesso direto.

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Por fim, agora temos a implementação final que será feita dentro do nosso UserForm, nele definimos o atributo Login que representará o objeto ClsLogin. Nesse ponto, nós instanciamos o objeto e passamos o valores do formulário para as propriedades da classe. Portanto, será encargo dela fazer todo o trabalho daqui pra frente.

 

Como Fazer Login De Usuário Orientado A Objetos + DataBase Access

 

Bem espero que vocês tenham gostado e se tiverem dúvidas deixem aqui nos comentários, prometo responder em breve. Para complemento desse artigo, recomendo que leiam nosso post sobre módulos de classe no vba. Não se esqueçam de curti compartilhar essa postagem, pois estão trazendo grande força para nosso canal!

 

→Download do Projeto de Referência do Artigo!

 

Sobre o autor | Website

Desculpe, os comentários deste artigo estão encerrados.

5 Comentários

  1. erotik disse:

    Everything is very open with a really clear clarification of the issues. It was truly informative. Your site is extremely helpful. Thank you for sharing! Lily Lane Martino

  2. bursa escort disse:

    Yes, i can help you. Which part do you want to get it works? Pavla Hailey London

  3. erotik disse:

    Hey There. I found your blog the use of msn. That is an extremely well written article. Maddie Farlay Eleen

  4. bursa escort disse:

    Mamibet adalah bandar judi slot pulsa terbaik yang memiliki beragam jenis permaiann judi slot online yang menguntungkan bagi semua pemain judi slot Indonesia. Filide Malachi Anny

  5. erotik disse:

    nalla kavidhai ! enakku endha varigal saandilyan, baala kumaaranai ninaivil kondathu., nalla sindhanai ..kavithayaai malara vendrum..super ma vaalththukkal pala.. Jillana Manolo Tressa



Por gentileza, se deseja alterar o arquivo do rodapé,
entre em contato com o suporte.
google.com, pub-3449874674717021, DIRECT, f08c47fec0942fa0