Avaliação do Usuário

Estrela ativaEstrela ativaEstrela ativaEstrela ativaEstrela ativa
 

 

ACOMPANHE A SÉRIE

Sistema de Login e Senha no Access/VBA - Parte 1/5
Sistema de Login e Senha no Access/VBA - Parte 2/5
Sistema de Login e Senha no Access/VBA - Parte 3/5
Sistema de Login e Senha no Access/VBA - Parte 4/5
Sistema de Login e Senha no Access/VBA - Parte 5/5

EXEMPLO DO ARTIGO

Faça o download do exemplo do artigo para estudo: LoginSeguro.zip
O exemplo está completo, então, não se assuste caso você encontre códigos diferentes do que está sendo ensinado nesta parte do artigo.
Para compreendê-lo completamente estude primeiro todas as 5 partes do artigo.

DICA IMPORTANTE PARA ELEVAR SEU CONHECIMENTO

Assista as vídeo-aulas do Curso de Access 2010 (OfficeGuru) e também as do Curso de Programação em Access/VBA.
Para os leigos o Curso de Programação em Access/VBA é obrigatório.


INTRODUÇÃO

Além da funcionalidade, os sistemas devem ser elaborados pensando-se na organização e nos modelos eficientes de projeto, de modo a tornar a manutenção dos códigos uma tarefa um pouco mais fácil e agradável.

Esta é a segunda parte da série de 5 artigos sobre a implantação de um sistema básico de Login e Senha utilizando Access e VBA, na qual abordaremos a remodelagem dos códigos, atribuindo tarefas específicas a funções e procedimentos. Além disso daremos início aos procedimentos de verificação de conteúdo. 

FUNÇÕES DE BUSCA E ATRIBUIÇÃO DE USUÁRIOS E GRUPOS

Todo desenvolvedor experiente deve ter em mente que os códigos não podem ficar dispersos pelo sistema. Tarefas específicas devem ser executadas utilizando-se funções e procedimentos. Dependendo da situação e da linguagem utilizada isto deve ser até mesmo atribuído às classes de objetos e seus métodos.

Em nosso exemplo vamos utilizar todos estes recursos. Então por onde começar?

Criaremos, em primeiro lugar, as funções de busca e atribuição de valores para usuários e grupos. Para isto crie um novo módulo chamado ControleAcesso.

Agora será necessário criar uma variável privada, neste mesmo módulo ControleAcesso, para armazenar o valor do usuário atual:

Private strUsuarioAtual As String

Agora vamos criar as funções para buscar e atribuir os valor a esta variável, já que ela é privada e, por isso, inacessível a partir de outros módulos:

Function getUsuarioAtual() As String

  getUsuarioAtual = strUsuarioAtual

End Function

Sub setUsuarioAtual(argLogin As String)

  strUsuarioAtual = argLogin

End Sub

Inclua também uma função para obter o valor do grupo do usuário atual, que retornará o número do grupo ou então o valor “” (string vazia), caso não haja usuário logado no momento.

Function getGrupoUsuarioAtual() As String
  
  getGrupoUsuarioAtual = Nz(DLookup("grupo", "Usuario", _
                    "login='" & strUsuarioAtual & "'"), "")
  
  Select Case getGrupoUsuarioAtual
    Case 0
      getGrupoUsuarioAtual = "Administradores"
    Case 1
      getGrupoUsuarioAtual = "Gerentes"
    Case 2
      getGrupoUsuarioAtual = "Usuários"
    Case 3
      getGrupoUsuarioAtual = "Visitantes"
    Case Else
      getGrupoUsuarioAtual = ""
  End Select
  
End Function

Estas funções serão úteis para executarmos procedimentos de liberação ou restrição de acesso aos elementos do nosso sistema. Como exemplo, suponha que o acesso ao formulário de cadastro de usuários somente será permitido aos usuários do grupo Administradores. Bastaria incluir, no botão que aciona tal formulário, uma verificação do grupo do usuário atual, antes de executar o comando de abertura do mesmo. Veja o exemplo:

Private Sub btnCadastroUsuario_Click()

  If getGrupoUsuarioAtual = "Administradores" Then
    DoCmd.OpenForm "FCadastroUsuario"
  Else
    MsgBox "Acesso permitido somente aos administradores!", _
          vbExclamation, "Acesso Negado"
  End If
  
End Sub

Caso tivéssemos, por exemplo, um relatório financeiro, cujo acesso fosse permitido apenas para os membros dos grupos Gerentes e Administradores, faríamos da seguinte forma:

Private Sub btnRelatorioFinanceiro_Click()

  If getGrupoUsuarioAtual = "Administradores" Or getGrupoUsuarioAtual = "Gerentes" Then
    DoCmd.OpenReport "RFinanceiro"
  Else
    MsgBox "Acesso permitido somente aos administradores e gerentes!", _
          vbExclamation, "Acesso Negado"
  End If
 
End Sub

Com isto podemos restringir o acesso aos formulários e relatórios do sistema de acordo com a permissão de cada grupo de usuários, conforme a necessidade. Criar outras alternativas de utilização das permissões será uma tarefa do caro leitor e desenvolvedor. Deixe a imaginação tomar conta.

Seja social. Compartilhe!