Vídeo - SysControle - Controle de Usuarios
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito, através do Paypal.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
O aplicativo Maestro, oferecido aqui no site, faz um grande sucesso, principalmente por causa do sistema de Controle de Usuarios que interage com uma ribbon personalizada. Este Controle de Usuários tem um certo grau de dificuldade para ser implementado, principalmente para os menos experientes.
Devido ao grande número de pedidos de ajuda que recebo por e-mail, resolvi atualizar este sistema e separá-lo por completo do Maestro e assim facilitar ao máximo a sua implementação. Além da separação, resolvi montar uma vídeo-aula de 38 minutos, ensinando o passo a passo de como incorporá-lo aos seus projetos. Dei o nome a este novo Controle de Usuarios de sysControle. Junto com o sysControle, você irá baixar também o aplicativo exemplo, chamado de Cadastros, que serviu de base para a vídeo-aula e que será muito útil para os seus estudos.
A aparência e os objetos contidos do novo Controle de Usuarios não diferem muito em relação ao do Maestro, no entanto uma nova programação foi utilizado, visando facilitar a implementação com as ribbons e a ampliar o controle sobre novos objetos, como botões, campos, tabelas e consultas.
O projeto possui três tabelas, que se relacionam conforme você vê na figura abaixo:
São usados apenas quatro formulários: o de Login, o de Cadastro de Usuários, o de Controle de Permissões e o de Funções.
Login
Cadastro de Usuários
Controle de Permissões
Cadastro de Funções
A vídeo-aula demonstra como configurar e utilizar cada um desses formulários.
A função de bloqueio e restrições para os seus formulários
Todos os formulários do seu projeto que estiverem sujeitos a alguma restrição, deverão ter em cada evento "Ao Abrir", a seguinte linha de comando:
Private Sub Form_Open(Cancel As Integer) Cancel = Not fncPermissõesfrm(Me) End Sub
A função de bloqueio para os seus relatórios
Todos os relatórios do seu projeto que estiverem sujeitos a algum bloqueio, deverão ter em cada evento "Ao Abrir", a seguinte linha de comando:
Private Sub Report_Open(Cancel As Integer) Cancel = fncObjetoBloqueado(Me.Name, prBloquear, False) End Sub
A função de bloqueio e restrições para botões e campos
Você deverá adicionar a função de bloqueio para todos os botões e campos que estiverem sujeitos a alguma restrição. As linhas de comando deverão ser inseridas no evento "Ao Abrir" do formulário, conforme exemplo abaixo:
Private Sub Form_Open(Cancel As Integer) Cancel = Not fncPermissõesfrm(Me, False) Me!NomeObjeto.visible = fncObjetoBloqueado("NomeObjeto", prVisivelOutro, False) Me!NomeObjeto.enabled = fncObjetoBloqueado("NomeObjeto", prHabilitadoOutro, False) End Sub
A vídeo-aula mostra passo a passo, a implementação dessas funções e o seu devido funcionamento, de acordo com as permissões estabelecidas.
Desabilitando e habilitando as ribbons
O projeto utiliza a seguinte linha para desabilitar todas as ribbons do Access, inclusive as personalizadas.
...
DoCmd.ShowToolbar "ribbon", acToolbarNo
...
Para ativar as ribbons do Access, inclusive as personalizadas, a seguinte linha é utilizada:
...
DoCmd.ShowToolbar "ribbon", acToolbarYes
...
Estes comandos estão no formulário frmLogin.
Descompactar na pasta c:\SysControle
Crie a pasta sysControle na sua unidade C:\ e depois baixe o arquivo sysControle.zip fornecido aqui no artigo para a pasta que você criou. Esse local especifico se faz necessário, devido ao uso de tabelas vinculadas pelo arquivo exemplo utilizado na vídeo-aula.
Segurança total utilizando o OPEN
Após a implementação deste Controle de Usuários, sugiro que realize um reforço na segurança, com o aplicativo OPEN, disponível aqui pelo site. Ele oferece uma proteção espetacular aos seus projetos. Vale à pena você assistir ao vídeo para entender como ele funciona e como é simples a sua configuração. Você não precisará adicionar linhas de código aos seus projetos. Clique AQUI e bom estudo!
Kit de aprendizagem para montar ribbons
O site oferece um kit completo para você aprender a montar ribbons. Este kit inclui o aplicativo MontaRibbons. Veja na imagem abaixo:
Além do aplicativo, você tem a sua disposição 6 artigos e 6 vídeos-aulas. Nas duas primeiras vídeos-aulas você já será capaz de montar e implementar as ribbons em seus projetos. A terceira vídeo-aula é fundamental para que você adquira o conhecimento necessário e assim possa implementar, na íntegra, o sistema de Controle de Usuários oferecido aqui. Para obter mais detalhes sobre este kit, clique AQUI.
Quanto custa o sysControle?
O sysControle é gratuito para os assinantes do site ou para quem já tem o kit MontaRibbons. O sysControle não é vendido, separadamente. Clique AQUI e veja os diversos planos de assinatura que oferecemos.
Dowload do sysControle (baixar e descompactar na pasta c:\sysControle)
Sucesso!
Artigos Relacionados
O MDW (segurança em nível de usuário) morreu
Segurança máxima usando o OPEN
Vídeo - Criando ribbons (parte 1)
Sistema de vinculação de tabelas com Barra de Progresso
Manutenção e Sistema de Backup com Barra de Progresso
25 comentários Giovani Santos Pontes Maciel 21/09/2023 06:01:23 Como posso filtrar apenas os lançamentos do usuário logado ao abrir um formulário, nesse formulário já tem o campo ID usuário que fez lançamento, quero que ao abrir o sistema identifique o usuário logado e traga apenas os lançamentos do mesmo. Alan Rodrigo 29/08/2023 07:21:12 Avelino. Bom dia, tudo bem? Estou utilizando o Syscontrole com ribbon para implementações. Entretanto, estou preso em uma situação que, apesar de várias tentativas, não consigo reverter. Na "rbprincipal" quando eu insiro os comandos para adaptar a backstage ( Novamente, parabéns pelo seu trabalho. Avelino Sampaio 29/06/2023 07:23:27 Carlos Sim, com o Access 2016 e também com o 2019 Sucesso! Carlos Alencar 29/06/2023 06:34:42 o Ribbon tem compatibilidade com o access 2016? JOSEALDO 05/01/2023 16:16:17 Olá, Depois de muitas horas de estudos e claro com o auxilo do Mestre Avelino, consegui implementar o Systema de Controle de Usuarios. Agora estou partindo para a implementação do Open. Grato Mestre JOSEALDO 04/01/2023 16:41:30 Até a Ribbon implementada está funcionando. Quando faço todas as etapas do SysControle ao logar ele não carrega a Ribbon... Poderia me ajudar ? Por favor. Quais etapas que poderia ser verifacadas... JOSEALDO 03/01/2023 14:58:03 Olá, depois de muito tempo estudando e verificando os videos eu conseguir fazer o bloqueio dos formularios, mais estou sem sucesso no bloqueio de botões e de esconder o Grupo. Precisando de suporte, agradeço. Josealdo 02/01/2023 22:24:25 Avelino o que ocorre comigo é o mesmo descrito em: Andre 11/07/2019 05:30:37. Fico no aguardo de seu auxilio. Agradeço. Josealdo 02/01/2023 21:11:11 Olá, eu segui todas as etapas, verifiquei o videos mais de 3 vezes. As funções de bloqueio não estou conseguindo obter sucesso. :( Josealdo 02/01/2023 21:11:07 Olá, eu segui todas as etapas, verifiquei o videos mais de 3 vezes. As funções de bloqueio não estou conseguindo obter sucesso. :( Josealdo Lyra 02/01/2023 13:24:53 Olá, Avelino durante o cadastro do usuário, preciso solicitar mais uma informação durante o cadastro que no caso seria "Registro", onde tenho que efetuar as alterações no formulário e no código para coletar a informação? Obrigado. Andre 11/07/2022 05:30:37 Estou desenvolvendo um aplicativo no access para empresa onde eu trabalho, mas estou com um problema para aplicar o controle de acesso à usuários. Vi o seu video segui o passo a passo que vc explica no video, coloquei a linha de código no formulário no evento ao abrir. Funciona a tela de login com os usuários e senha que cadastro, mas as permissões não está funcionando o que é selecionado. Fiz e refiz esse procedimento de instalação, não estou conseguindo. Alguém poderia me ajudar neste caso? Tenho uma duvida no sysControle tem o módulo mod_ConfigRibbon coloquei as linhas de código e as ativei em cima do select Case. Neste select Case Control id Case "xxx" , aqui tem que colocar algum código? JOSEALDO BAPTISTA DE LYRA 24/10/2021 08:44:24 Parabens, show de bola. Roberto Alves 11/12/2020 07:14:29 Agora deu certo tenho que usar no evento ao carregar do relatório me!NomeDoCampo = Tempvars!Usuario que aí vai identificar qual usuário emitiu tal documento Roberto Alves 11/12/2020 03:45:10 como eu usaria TempVars!Usuario = login.Usuario em um relatório? seria me!NomeDoCampo = Tempvars!Usuario tentei dessa forma e não deu certo Fernando 15/08/2020 15:19:03 Excelente prof. Avelino, No meu projeto os Usuários serão adicionados a Grupos e estes é que terão as permissões. Como eu poderia adaptar seu projeto pra dar permissões aos Grupos? Arilson 09/07/2020 15:33:55 Bela Actualização e iniciativa de separar o controle de Usuários Mestre Avelino parabéns! Valdir Pereira da 08/07/2020 12:42:05 Boa tarde Avelino, Não consegui idendificar no código onde inserir essa instrução. Fiz alguns testes mas não consegui que funcionasse. Poderia me ajudar? Outra coisa: quando o usuário mudar a senha dele, a tabela mudará o status para não?? Avelino Sampaio 08/07/2020 05:28:59 Valdir Creio que a solução passa pela criação de um campo do tipo SIM/NÃO, na tabela de usuários (tblusuários). O Admin setando o campo para SIM, obriga o usuário a ter que alterar a senha. No formulário de Login, logo após autenticação do usuário, cria uma condição IF para verificar o status se está marcado como SIM. If dlookup("status","tblUsuários","idusuario = " & login.id) =true then ‘ abrir o formulário de troca de senha do usuário End if Sucesso! Valdir Pereira da 05/07/2020 11:26:22 Avelino! Implantei o SysControle no meu projeto! Inclusive comprei e te parabenizo pelo montaribbons, meu projeto ficou demais. Parabéns! Gostaria de saber de você agora o seguinte: quando crio um usuário para o meu sistema, coloco a senh 1234. Queria que quando a pessoa fizesse o login houvesse uma verificação se a senha dele ainda está 1234 e se estiver, abrir o formulário de alteração de senha, obrigando-o a mudar a senha naquele momento e se ele clicar em cancelar no form alterar senha, o aplicativo fecha da mesma forma que acontece no formLogin. Luís Filipe Antunes 27/06/2020 07:14:27 Avelino Utilizei esta linha num segundo form Cancel = Not fncPermissõesfrm(Me) Acontece que os campos ficam bloqueados para todos os usuários incluindo o administrador. Avelino Sampaio 27/05/2020 03:42:39 Roberto, se você conseguiu assistir o vídeo na íntegra, teve a oportunidade de observar que eu demonstrei os objetos (formulários e relatórios) sendo bloqueados pelo Painel de Navegação e pelos botões do formulário frmClientes. Se você então fiz uso de um formulário de navegação, basta utilizar a função de bloqueio para habilitar/desabitar os botões. Sucesso! Roberto Alves 26/05/2020 15:47:13 Amigo o sys controle como ele funcionaria no projeto sem as ribbons Avelino Sampaio 25/05/2020 14:37:25 Valdir, o sysControle armazena os dados do usuário, na variável "login" (login.id e login.usuario), da mesma forma que é feito no Maestro. No evento "ao clicar" do botão "OK" do formulário de frmLogin, Acrescente a variável TempVars na seguinte posição: ... 'repassa a identificação do usuário para a variável login login.id = .Column(0) 'IdUsuário login.Usuario = .Column(1) 'Nome do usuário TempVars!Usuario = login.Usuario ... Pronto, agora vc pode utilizar a avriável TempVars em qualquer lugar do seu projeto. Exemplo, carregado o valor para um determinado campo de um formulário: me!NomeDoCampo = Tempvars!Usuario Valdir Silva 25/05/2020 12:18:26 Top Avelino! Já comecei a adaptar aqui no meu projeto. Preciso da sua ajuda pra mais uma coisanha, seguinte: Para auditoria de lançamentos, no meu banco tem um campo em todas as tabelas usuario e gostaria de uma função que retorne o usuário logado no aplicativo e preenchesse esse campo no formulário quando o usuário fosse cadastrar algo, dessa forma saberíamos que foi o usuáro que efetuou a operação. No controle de usuários do access, o antigo, chamando a função UsuarioAtual() ele retorna o usuário, mas no caso do nosso aqui, usando essa função ele retorna Admin. Será que pode nos ajudar com isso? Acredito que muitos dos seus fãs gostariam tbm dessa função. Vlw |