Tenha em mãos as Melhores Planilhas! Paulo

Login De Usuário Orientado A Objectos + Data Base Access

Login De Usuário Orientado A Objectos + Data Base 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.

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.

Login De Usuário Orientado A Objectos + Data Base 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!

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:

Login De Usuário Orientado A Objectos + Data Base Access

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

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.

Login De Usuário Orientado A Objectos + Data Base Access

Agora veja o resultado do nosso sistema:

Login De Usuário Orientado A Objectos + Data Base Access

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.

Login De Usuário Orientado A Objectos + Data Base 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, eles são chamados automaticamente sempre que a classe é instanciada ou destruída.

Login De Usuário Orientado A Objectos + Data Base Access

Class_Inicialeze()

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.

Login De Usuário Orientado A Objectos + Data Base Access

Todos os atributos da classe são privados por isso temos a necessidade desses métodos. Note que o atributo Pathnão implementa os métodos assessores pois nesse caso não precisamos usa-lo de fora da classe. O atributo Pathrepresenta 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.

Login De Usuário Orientado A Objectos + Data Base 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.

Login De Usuário Orientado A Objectos + Data Base 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.

Login De Usuário Orientado A Objectos + Data Base Access

Por fim, agora temos a implementação final que será feita dentro do nosso UserForm, nele definimos o atributo Loginque 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.

Login De Usuário Orientado A Objectos + Data Base 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



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