Login De Usuário Orientado A Objetos + DataBase Access

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, porem 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.

→Tela de login – Aprenda a Criar Uma Tela De Login No VBA

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.

 

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 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

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

 

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

 

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

 

Para o projeto não ficar muito extenso nós não implementamos todos os métodos de um usuário. Portanto, para você pode 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

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.

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, 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. 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.

 

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!

Sobre o Autor

Welisson Silva
Welisson Silva

Analista de Sistemas, trabalha com TI desde 2014. Especializado em Vendas Online, desenvolvedor, programador, guitarrista e entusiasta de tudo que envolva tecnologia.