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.
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!
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.
Agora veja o resultado do nosso sistema:
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
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.
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.
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.
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.
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.
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.
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!
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
Yes, i can help you. Which part do you want to get it works? Pavla Hailey London
Hey There. I found your blog the use of msn. That is an extremely well written article. Maddie Farlay Eleen
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
nalla kavidhai ! enakku endha varigal saandilyan, baala kumaaranai ninaivil kondathu., nalla sindhanai ..kavithayaai malara vendrum..super ma vaalththukkal pala.. Jillana Manolo Tressa